Commit 81caf87805425d65a2dbef91380432961597df22
1 parent
21d23065
Exists in
master
cleaning, admin feedback and dumps
Showing
10 changed files
with
294 additions
and
94 deletions
Show diff stats
cultural_matrix.lpi
| @@ -25,7 +25,7 @@ | @@ -25,7 +25,7 @@ | ||
| 25 | </Target> | 25 | </Target> |
| 26 | <SearchPaths> | 26 | <SearchPaths> |
| 27 | <IncludeFiles Value="$(ProjOutDir)"/> | 27 | <IncludeFiles Value="$(ProjOutDir)"/> |
| 28 | - <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9"/> | 28 | + <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9/"/> |
| 29 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> | 29 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> |
| 30 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> | 30 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> |
| 31 | </SearchPaths> | 31 | </SearchPaths> |
| @@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
| 46 | </Target> | 46 | </Target> |
| 47 | <SearchPaths> | 47 | <SearchPaths> |
| 48 | <IncludeFiles Value="$(ProjOutDir)"/> | 48 | <IncludeFiles Value="$(ProjOutDir)"/> |
| 49 | - <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9"/> | 49 | + <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9/"/> |
| 50 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> | 50 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> |
| 51 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> | 51 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> |
| 52 | </SearchPaths> | 52 | </SearchPaths> |
| @@ -147,6 +147,7 @@ | @@ -147,6 +147,7 @@ | ||
| 147 | <Filename Value="form_chooseactor.pas"/> | 147 | <Filename Value="form_chooseactor.pas"/> |
| 148 | <IsPartOfProject Value="True"/> | 148 | <IsPartOfProject Value="True"/> |
| 149 | <ComponentName Value="FormChooseActor"/> | 149 | <ComponentName Value="FormChooseActor"/> |
| 150 | + <HasResources Value="True"/> | ||
| 150 | <ResourceBaseClass Value="Form"/> | 151 | <ResourceBaseClass Value="Form"/> |
| 151 | </Unit13> | 152 | </Unit13> |
| 152 | <Unit14> | 153 | <Unit14> |
| @@ -162,7 +163,7 @@ | @@ -162,7 +163,7 @@ | ||
| 162 | </Target> | 163 | </Target> |
| 163 | <SearchPaths> | 164 | <SearchPaths> |
| 164 | <IncludeFiles Value="$(ProjOutDir)"/> | 165 | <IncludeFiles Value="$(ProjOutDir)"/> |
| 165 | - <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9"/> | 166 | + <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9/"/> |
| 166 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> | 167 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> |
| 167 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> | 168 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> |
| 168 | </SearchPaths> | 169 | </SearchPaths> |
form_matrixgame.lfm
| 1 | object FormMatrixGame: TFormMatrixGame | 1 | object FormMatrixGame: TFormMatrixGame |
| 2 | - Left = 0 | ||
| 3 | - Height = 565 | ||
| 4 | - Top = 124 | ||
| 5 | - Width = 1278 | ||
| 6 | - HorzScrollBar.Page = 1278 | 2 | + Left = 54 |
| 3 | + Height = 612 | ||
| 4 | + Top = 80 | ||
| 5 | + Width = 1164 | ||
| 6 | + HorzScrollBar.Page = 1164 | ||
| 7 | VertScrollBar.Page = 542 | 7 | VertScrollBar.Page = 542 |
| 8 | AutoScroll = True | 8 | AutoScroll = True |
| 9 | Caption = 'FormMatrixGame' | 9 | Caption = 'FormMatrixGame' |
| 10 | - ClientHeight = 555 | ||
| 11 | - ClientWidth = 1278 | 10 | + ClientHeight = 602 |
| 11 | + ClientWidth = 1164 | ||
| 12 | Font.Name = 'Monospace' | 12 | Font.Name = 'Monospace' |
| 13 | OnActivate = FormActivate | 13 | OnActivate = FormActivate |
| 14 | LCLVersion = '1.6.2.0' | 14 | LCLVersion = '1.6.2.0' |
| @@ -184,7 +184,7 @@ object FormMatrixGame: TFormMatrixGame | @@ -184,7 +184,7 @@ object FormMatrixGame: TFormMatrixGame | ||
| 184 | AnchorSideBottom.Side = asrBottom | 184 | AnchorSideBottom.Side = asrBottom |
| 185 | Left = 0 | 185 | Left = 0 |
| 186 | Height = 17 | 186 | Height = 17 |
| 187 | - Top = 538 | 187 | + Top = 585 |
| 188 | Width = 1632 | 188 | Width = 1632 |
| 189 | Anchors = [akLeft, akRight, akBottom] | 189 | Anchors = [akLeft, akRight, akBottom] |
| 190 | AutoSize = True | 190 | AutoSize = True |
| @@ -211,10 +211,10 @@ object FormMatrixGame: TFormMatrixGame | @@ -211,10 +211,10 @@ object FormMatrixGame: TFormMatrixGame | ||
| 211 | TabOrder = 4 | 211 | TabOrder = 4 |
| 212 | Visible = False | 212 | Visible = False |
| 213 | object GBExperiment: TGroupBox | 213 | object GBExperiment: TGroupBox |
| 214 | - Left = 8 | ||
| 215 | - Height = 277 | 214 | + Left = 16 |
| 215 | + Height = 197 | ||
| 216 | Top = 60 | 216 | Top = 60 |
| 217 | - Width = 188 | 217 | + Width = 228 |
| 218 | AutoSize = True | 218 | AutoSize = True |
| 219 | Caption = 'Experimento' | 219 | Caption = 'Experimento' |
| 220 | ChildSizing.LeftRightSpacing = 10 | 220 | ChildSizing.LeftRightSpacing = 10 |
| @@ -224,19 +224,19 @@ object FormMatrixGame: TFormMatrixGame | @@ -224,19 +224,19 @@ object FormMatrixGame: TFormMatrixGame | ||
| 224 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize | 224 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 225 | ChildSizing.Layout = cclLeftToRightThenTopToBottom | 225 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 226 | ChildSizing.ControlsPerLine = 2 | 226 | ChildSizing.ControlsPerLine = 2 |
| 227 | - ClientHeight = 260 | ||
| 228 | - ClientWidth = 184 | 227 | + ClientHeight = 180 |
| 228 | + ClientWidth = 224 | ||
| 229 | TabOrder = 0 | 229 | TabOrder = 0 |
| 230 | object LabelExpCond: TLabel | 230 | object LabelExpCond: TLabel |
| 231 | Left = 10 | 231 | Left = 10 |
| 232 | Height = 15 | 232 | Height = 15 |
| 233 | Top = 20 | 233 | Top = 20 |
| 234 | - Width = 128 | 234 | + Width = 168 |
| 235 | Caption = 'Condição:' | 235 | Caption = 'Condição:' |
| 236 | ParentColor = False | 236 | ParentColor = False |
| 237 | end | 237 | end |
| 238 | object LabelExpCountCondition: TLabel | 238 | object LabelExpCountCondition: TLabel |
| 239 | - Left = 158 | 239 | + Left = 198 |
| 240 | Height = 15 | 240 | Height = 15 |
| 241 | Top = 20 | 241 | Top = 20 |
| 242 | Width = 16 | 242 | Width = 16 |
| @@ -247,12 +247,12 @@ object FormMatrixGame: TFormMatrixGame | @@ -247,12 +247,12 @@ object FormMatrixGame: TFormMatrixGame | ||
| 247 | Left = 10 | 247 | Left = 10 |
| 248 | Height = 15 | 248 | Height = 15 |
| 249 | Top = 45 | 249 | Top = 45 |
| 250 | - Width = 128 | 250 | + Width = 168 |
| 251 | Caption = 'Geração:' | 251 | Caption = 'Geração:' |
| 252 | ParentColor = False | 252 | ParentColor = False |
| 253 | end | 253 | end |
| 254 | object LabelExpCountGeneration: TLabel | 254 | object LabelExpCountGeneration: TLabel |
| 255 | - Left = 158 | 255 | + Left = 198 |
| 256 | Height = 15 | 256 | Height = 15 |
| 257 | Top = 45 | 257 | Top = 45 |
| 258 | Width = 16 | 258 | Width = 16 |
| @@ -263,12 +263,12 @@ object FormMatrixGame: TFormMatrixGame | @@ -263,12 +263,12 @@ object FormMatrixGame: TFormMatrixGame | ||
| 263 | Left = 10 | 263 | Left = 10 |
| 264 | Height = 15 | 264 | Height = 15 |
| 265 | Top = 70 | 265 | Top = 70 |
| 266 | - Width = 128 | 266 | + Width = 168 |
| 267 | Caption = 'Ciclo:' | 267 | Caption = 'Ciclo:' |
| 268 | ParentColor = False | 268 | ParentColor = False |
| 269 | end | 269 | end |
| 270 | object LabelExpCountCycle: TLabel | 270 | object LabelExpCountCycle: TLabel |
| 271 | - Left = 158 | 271 | + Left = 198 |
| 272 | Height = 15 | 272 | Height = 15 |
| 273 | Top = 70 | 273 | Top = 70 |
| 274 | Width = 16 | 274 | Width = 16 |
| @@ -279,12 +279,12 @@ object FormMatrixGame: TFormMatrixGame | @@ -279,12 +279,12 @@ object FormMatrixGame: TFormMatrixGame | ||
| 279 | Left = 10 | 279 | Left = 10 |
| 280 | Height = 15 | 280 | Height = 15 |
| 281 | Top = 95 | 281 | Top = 95 |
| 282 | - Width = 128 | 282 | + Width = 168 |
| 283 | Caption = 'Turno:' | 283 | Caption = 'Turno:' |
| 284 | ParentColor = False | 284 | ParentColor = False |
| 285 | end | 285 | end |
| 286 | object LabelExpCountTurn: TLabel | 286 | object LabelExpCountTurn: TLabel |
| 287 | - Left = 158 | 287 | + Left = 198 |
| 288 | Height = 15 | 288 | Height = 15 |
| 289 | Top = 95 | 289 | Top = 95 |
| 290 | Width = 16 | 290 | Width = 16 |
| @@ -295,74 +295,69 @@ object FormMatrixGame: TFormMatrixGame | @@ -295,74 +295,69 @@ object FormMatrixGame: TFormMatrixGame | ||
| 295 | Left = 10 | 295 | Left = 10 |
| 296 | Height = 15 | 296 | Height = 15 |
| 297 | Top = 120 | 297 | Top = 120 |
| 298 | - Width = 128 | 298 | + Width = 168 |
| 299 | Caption = 'Entrelaçamentos:' | 299 | Caption = 'Entrelaçamentos:' |
| 300 | ParentColor = False | 300 | ParentColor = False |
| 301 | end | 301 | end |
| 302 | object LabelExpCountInterlocks: TLabel | 302 | object LabelExpCountInterlocks: TLabel |
| 303 | - Left = 158 | 303 | + Left = 198 |
| 304 | Height = 15 | 304 | Height = 15 |
| 305 | Top = 120 | 305 | Top = 120 |
| 306 | Width = 16 | 306 | Width = 16 |
| 307 | Caption = 'NA' | 307 | Caption = 'NA' |
| 308 | ParentColor = False | 308 | ParentColor = False |
| 309 | end | 309 | end |
| 310 | - object ButtonExpStart: TButton | 310 | + object LabelExpTInterlocks: TLabel |
| 311 | Left = 10 | 311 | Left = 10 |
| 312 | - Height = 25 | ||
| 313 | - Top = 145 | ||
| 314 | - Width = 128 | ||
| 315 | - Caption = 'Começar' | ||
| 316 | - OnClick = ButtonExpStartClick | ||
| 317 | - TabOrder = 0 | ||
| 318 | - end | ||
| 319 | - object LabelUnseen1: TLabel | ||
| 320 | - Left = 158 | ||
| 321 | - Height = 25 | 312 | + Height = 15 |
| 322 | Top = 145 | 313 | Top = 145 |
| 323 | - Width = 16 | ||
| 324 | - ParentColor = False | ||
| 325 | - end | ||
| 326 | - object ButtonExpPause: TButton | ||
| 327 | - Left = 10 | ||
| 328 | - Height = 25 | ||
| 329 | - Top = 180 | ||
| 330 | - Width = 128 | ||
| 331 | - Caption = 'Pausar' | ||
| 332 | - Enabled = False | ||
| 333 | - OnClick = ButtonExpPauseClick | ||
| 334 | - TabOrder = 1 | ||
| 335 | - end | ||
| 336 | - object LabelUnseen2: TLabel | ||
| 337 | - Left = 158 | ||
| 338 | - Height = 25 | ||
| 339 | - Top = 180 | ||
| 340 | - Width = 16 | 314 | + Width = 168 |
| 315 | + Caption = 'Entrelaçamentos Alvo:' | ||
| 341 | ParentColor = False | 316 | ParentColor = False |
| 342 | end | 317 | end |
| 343 | - object ButtonExpCancel: TButton | ||
| 344 | - Left = 10 | ||
| 345 | - Height = 25 | ||
| 346 | - Top = 215 | ||
| 347 | - Width = 128 | ||
| 348 | - Caption = 'Cancelar' | ||
| 349 | - Enabled = False | ||
| 350 | - OnClick = ButtonExpCancelClick | ||
| 351 | - TabOrder = 2 | ||
| 352 | - end | ||
| 353 | - object LabelUnseen3: TLabel | ||
| 354 | - Left = 158 | ||
| 355 | - Height = 25 | ||
| 356 | - Top = 215 | 318 | + object LabelExpCountTInterlocks: TLabel |
| 319 | + Left = 198 | ||
| 320 | + Height = 15 | ||
| 321 | + Top = 145 | ||
| 357 | Width = 16 | 322 | Width = 16 |
| 323 | + Caption = 'NA' | ||
| 358 | ParentColor = False | 324 | ParentColor = False |
| 359 | end | 325 | end |
| 360 | end | 326 | end |
| 327 | + object ButtonExpStart: TButton | ||
| 328 | + Left = 16 | ||
| 329 | + Height = 25 | ||
| 330 | + Top = 16 | ||
| 331 | + Width = 128 | ||
| 332 | + Caption = 'Começar' | ||
| 333 | + OnClick = ButtonExpStartClick | ||
| 334 | + TabOrder = 1 | ||
| 335 | + end | ||
| 336 | + object ButtonExpPause: TButton | ||
| 337 | + Left = 168 | ||
| 338 | + Height = 25 | ||
| 339 | + Top = 16 | ||
| 340 | + Width = 128 | ||
| 341 | + Caption = 'Pausar' | ||
| 342 | + Enabled = False | ||
| 343 | + OnClick = ButtonExpPauseClick | ||
| 344 | + TabOrder = 2 | ||
| 345 | + end | ||
| 346 | + object ButtonExpCancel: TButton | ||
| 347 | + Left = 320 | ||
| 348 | + Height = 25 | ||
| 349 | + Top = 16 | ||
| 350 | + Width = 128 | ||
| 351 | + Caption = 'Cancelar' | ||
| 352 | + Enabled = False | ||
| 353 | + OnClick = ButtonExpCancelClick | ||
| 354 | + TabOrder = 3 | ||
| 355 | + end | ||
| 361 | end | 356 | end |
| 362 | object btnConfirmRow: TButton | 357 | object btnConfirmRow: TButton |
| 363 | Left = 712 | 358 | Left = 712 |
| 364 | Height = 26 | 359 | Height = 26 |
| 365 | - Top = 319 | 360 | + Top = 152 |
| 366 | Width = 86 | 361 | Width = 86 |
| 367 | Caption = 'Confirmar' | 362 | Caption = 'Confirmar' |
| 368 | OnClick = btnConfirmRowClick | 363 | OnClick = btnConfirmRowClick |
form_matrixgame.pas
| @@ -28,23 +28,22 @@ type | @@ -28,23 +28,22 @@ type | ||
| 28 | 28 | ||
| 29 | TFormMatrixGame = class(TForm) | 29 | TFormMatrixGame = class(TForm) |
| 30 | btnConfirmRow: TButton; | 30 | btnConfirmRow: TButton; |
| 31 | - ButtonExpStart: TButton; | ||
| 32 | - ButtonExpPause: TButton; | ||
| 33 | ButtonExpCancel: TButton; | 31 | ButtonExpCancel: TButton; |
| 32 | + ButtonExpPause: TButton; | ||
| 33 | + ButtonExpStart: TButton; | ||
| 34 | GBIndividual: TGroupBox; | 34 | GBIndividual: TGroupBox; |
| 35 | GBLastChoice: TGroupBox; | 35 | GBLastChoice: TGroupBox; |
| 36 | GBIndividualAB: TGroupBox; | 36 | GBIndividualAB: TGroupBox; |
| 37 | GBGrupo: TGroupBox; | 37 | GBGrupo: TGroupBox; |
| 38 | GBAdmin: TGroupBox; | 38 | GBAdmin: TGroupBox; |
| 39 | GBExperiment: TGroupBox; | 39 | GBExperiment: TGroupBox; |
| 40 | - LabelUnseen1: TLabel; | ||
| 41 | - LabelUnseen2: TLabel; | ||
| 42 | - LabelUnseen3: TLabel; | ||
| 43 | LabelExpCountCondition: TLabel; | 40 | LabelExpCountCondition: TLabel; |
| 41 | + LabelExpCountTInterlocks: TLabel; | ||
| 44 | LabelExpGen: TLabel; | 42 | LabelExpGen: TLabel; |
| 45 | LabelExpCountGeneration: TLabel; | 43 | LabelExpCountGeneration: TLabel; |
| 46 | LabelExpCycle: TLabel; | 44 | LabelExpCycle: TLabel; |
| 47 | LabelExpCountCycle: TLabel; | 45 | LabelExpCountCycle: TLabel; |
| 46 | + LabelExpTInterlocks: TLabel; | ||
| 48 | LabelExpTurn: TLabel; | 47 | LabelExpTurn: TLabel; |
| 49 | LabelExpCountTurn: TLabel; | 48 | LabelExpCountTurn: TLabel; |
| 50 | LabelExpInterlocks: TLabel; | 49 | LabelExpInterlocks: TLabel; |
| @@ -222,6 +221,8 @@ procedure TFormMatrixGame.SetGameActor(AValue: TGameActor); | @@ -222,6 +221,8 @@ procedure TFormMatrixGame.SetGameActor(AValue: TGameActor); | ||
| 222 | procedure SetZMQAdmin; | 221 | procedure SetZMQAdmin; |
| 223 | begin | 222 | begin |
| 224 | FGameControl := TGameControl.Create(TZMQAdmin.Create(Self,FID),ExtractFilePath(Application.ExeName)); | 223 | FGameControl := TGameControl.Create(TZMQAdmin.Create(Self,FID),ExtractFilePath(Application.ExeName)); |
| 224 | + GBIndividual.Visible:=False; | ||
| 225 | + GBIndividualAB.Visible:=False; | ||
| 225 | GBAdmin.Visible:= True; | 226 | GBAdmin.Visible:= True; |
| 226 | end; | 227 | end; |
| 227 | 228 |
| @@ -0,0 +1,135 @@ | @@ -0,0 +1,135 @@ | ||
| 1 | +unit presentation_classes; | ||
| 2 | + | ||
| 3 | +{$mode objfpc}{$H+} | ||
| 4 | + | ||
| 5 | +interface | ||
| 6 | + | ||
| 7 | +uses | ||
| 8 | + Classes, SysUtils, ExtCtrls; | ||
| 9 | + | ||
| 10 | +type | ||
| 11 | + | ||
| 12 | + { TAnnouncerStartEvent } | ||
| 13 | + | ||
| 14 | + TAnnouncerStartEvent = procedure (AMessage : array of UTF8String) of object; | ||
| 15 | + | ||
| 16 | + { TAnnoucerMessages } | ||
| 17 | + | ||
| 18 | + TAnnoucerMessages = array of array of UTF8String; | ||
| 19 | + | ||
| 20 | + { TIntervalarAnnouncer } | ||
| 21 | + | ||
| 22 | + TIntervalarAnnouncer = class(TComponent) | ||
| 23 | + private | ||
| 24 | + FMessages: TAnnoucerMessages; | ||
| 25 | + FTimer : TTimer; | ||
| 26 | + FOnStart: TAnnouncerStartEvent; | ||
| 27 | + function GetEnabled: Boolean; | ||
| 28 | + function GetInterval: integer; | ||
| 29 | + procedure NextMessage; | ||
| 30 | + procedure SetEnabled(AValue: Boolean); | ||
| 31 | + procedure SelfDestroy(Sender: TObject); | ||
| 32 | + procedure SetInterval(AValue: integer); | ||
| 33 | + procedure StartTimer(Sender:TObject); | ||
| 34 | + public | ||
| 35 | + constructor Create(AOwner : TComponent); override; | ||
| 36 | + procedure Append(M : array of UTF8String); | ||
| 37 | + procedure Reversed; | ||
| 38 | + property Messages : TAnnoucerMessages read FMessages write FMessages; | ||
| 39 | + property OnStart : TAnnouncerStartEvent read FOnStart write FOnStart; | ||
| 40 | + property Interval : integer read GetInterval write SetInterval; | ||
| 41 | + property Enabled : Boolean read GetEnabled write SetEnabled; | ||
| 42 | + end; | ||
| 43 | + | ||
| 44 | +implementation | ||
| 45 | + | ||
| 46 | +{ TIntervalarAnnouncer } | ||
| 47 | + | ||
| 48 | +procedure TIntervalarAnnouncer.SetEnabled(AValue: Boolean); | ||
| 49 | +begin | ||
| 50 | + if FTimer.Enabled=AValue then Exit; | ||
| 51 | + FTimer.Enabled:= AValue; | ||
| 52 | +end; | ||
| 53 | + | ||
| 54 | +function TIntervalarAnnouncer.GetEnabled: Boolean; | ||
| 55 | +begin | ||
| 56 | + Result := FTimer.Enabled; | ||
| 57 | +end; | ||
| 58 | + | ||
| 59 | +function TIntervalarAnnouncer.GetInterval: integer; | ||
| 60 | +begin | ||
| 61 | + Result := FTimer.Interval; | ||
| 62 | +end; | ||
| 63 | + | ||
| 64 | +procedure TIntervalarAnnouncer.NextMessage; | ||
| 65 | +begin | ||
| 66 | + SetLength(FMessages,Length(FMessages)-1); | ||
| 67 | +end; | ||
| 68 | + | ||
| 69 | +procedure TIntervalarAnnouncer.SelfDestroy(Sender : TObject); | ||
| 70 | +var LAnnouncer : TIntervalarAnnouncer; | ||
| 71 | +begin | ||
| 72 | + if Length(FMessages) > 0 then | ||
| 73 | + begin | ||
| 74 | + LAnnouncer := TIntervalarAnnouncer.Create(nil); | ||
| 75 | + LAnnouncer.Messages := FMessages; | ||
| 76 | + LAnnouncer.OnStart:= FOnStart; | ||
| 77 | + LAnnouncer.Enabled:=True; | ||
| 78 | + end; | ||
| 79 | + Free; | ||
| 80 | +end; | ||
| 81 | + | ||
| 82 | +procedure TIntervalarAnnouncer.SetInterval(AValue: integer); | ||
| 83 | +begin | ||
| 84 | + if FTimer.Interval=AValue then Exit; | ||
| 85 | + FTimer.Interval:= AValue; | ||
| 86 | +end; | ||
| 87 | + | ||
| 88 | +procedure TIntervalarAnnouncer.StartTimer(Sender: TObject); | ||
| 89 | +var M : array of UTF8String; | ||
| 90 | +begin | ||
| 91 | + M := FMessages[High(FMessages)]; | ||
| 92 | + NextMessage; | ||
| 93 | + if Assigned(FOnStart) then FOnStart(M); | ||
| 94 | +end; | ||
| 95 | + | ||
| 96 | +constructor TIntervalarAnnouncer.Create(AOwner: TComponent); | ||
| 97 | +begin | ||
| 98 | + inherited Create(AOwner); | ||
| 99 | + FTimer := TTimer.Create(Self); | ||
| 100 | + FTimer.Enabled := False; | ||
| 101 | + FTimer.Interval := 5000; | ||
| 102 | + FTimer.OnTimer:=@SelfDestroy; | ||
| 103 | + //FTimer.OnStopTimer:=@SelfDestroy; | ||
| 104 | + FTimer.OnStartTimer:=@StartTimer; | ||
| 105 | +end; | ||
| 106 | + | ||
| 107 | +procedure TIntervalarAnnouncer.Append(M: array of UTF8String); | ||
| 108 | +var | ||
| 109 | + H : TAnnoucerMessages; | ||
| 110 | + i: Integer; | ||
| 111 | +begin | ||
| 112 | + SetLength(H,1,Length(M)); | ||
| 113 | + | ||
| 114 | + for i := Low(M) to High(M) do | ||
| 115 | + H[0,i] := M[i]; | ||
| 116 | + | ||
| 117 | + SetLength(FMessages,Length(FMessages)+1); | ||
| 118 | + FMessages[High(FMessages)] := H[0]; | ||
| 119 | +end; | ||
| 120 | + | ||
| 121 | +procedure TIntervalarAnnouncer.Reversed; | ||
| 122 | +var | ||
| 123 | + i : integer; | ||
| 124 | + M : TAnnoucerMessages; | ||
| 125 | +begin | ||
| 126 | + for i := High(FMessages) downto Low(FMessages) do | ||
| 127 | + begin | ||
| 128 | + SetLength(M,Length(M)+1); | ||
| 129 | + M[High(M)] := FMessages[i] | ||
| 130 | + end; | ||
| 131 | + FMessages := M; | ||
| 132 | +end; | ||
| 133 | + | ||
| 134 | +end. | ||
| 135 | + |
units/game_actors.pas
| @@ -15,7 +15,7 @@ interface | @@ -15,7 +15,7 @@ interface | ||
| 15 | 15 | ||
| 16 | uses | 16 | uses |
| 17 | Classes, SysUtils, Forms,PopupNotifier, ExtCtrls | 17 | Classes, SysUtils, Forms,PopupNotifier, ExtCtrls |
| 18 | - , game_actors_point | 18 | + , game_actors_point, game_visual_elements |
| 19 | ; | 19 | ; |
| 20 | type | 20 | type |
| 21 | 21 | ||
| @@ -42,7 +42,7 @@ type | @@ -42,7 +42,7 @@ type | ||
| 42 | //TGameOperator = (goNONE, goAND, goOR); | 42 | //TGameOperator = (goNONE, goAND, goOR); |
| 43 | TGameStyle = (gtNone, gtRowsOnly, gtColorsOnly, gtRowsAndColors, gtRowsOrColors); | 43 | TGameStyle = (gtNone, gtRowsOnly, gtColorsOnly, gtRowsAndColors, gtRowsOrColors); |
| 44 | 44 | ||
| 45 | - TGameConsequenceStyle = (gscNone, gscMessage, gscBroadcastMessage, gscPoints, gscVariablePoints, gscA, gscB,gscG); | 45 | + TGameConsequenceStyle = (gscNone, gscMessage, gscBroadcastMessage, gscPoints, gscVariablePoints, gscA, gscB,gscG,gscI); |
| 46 | TConsequenceStyle = set of TGameConsequenceStyle; | 46 | TConsequenceStyle = set of TGameConsequenceStyle; |
| 47 | 47 | ||
| 48 | TGamePromptStyle = (gsYes, gsNo, gsAll, gsMetacontingency, gsContingency, gsBasA, gsRevertPoints); | 48 | TGamePromptStyle = (gsYes, gsNo, gsAll, gsMetacontingency, gsContingency, gsBasA, gsRevertPoints); |
| @@ -109,6 +109,7 @@ type | @@ -109,6 +109,7 @@ type | ||
| 109 | procedure Clean; virtual; | 109 | procedure Clean; virtual; |
| 110 | procedure PresentMessage; | 110 | procedure PresentMessage; |
| 111 | procedure PresentPoints; | 111 | procedure PresentPoints; |
| 112 | + procedure PresentPoints(APlayerBox : TPlayerBox); overload; | ||
| 112 | property ShouldPublishMessage : Boolean read GetShouldPublishMessage; | 113 | property ShouldPublishMessage : Boolean read GetShouldPublishMessage; |
| 113 | property PlayerNicname : string read FNicname write FNicname; | 114 | property PlayerNicname : string read FNicname write FNicname; |
| 114 | property AppendiceSingular : string read FAppendiceSingular; | 115 | property AppendiceSingular : string read FAppendiceSingular; |
| @@ -127,6 +128,7 @@ type | @@ -127,6 +128,7 @@ type | ||
| 127 | FCriteria : TCriteria; | 128 | FCriteria : TCriteria; |
| 128 | FName: string; | 129 | FName: string; |
| 129 | FOnCriteria: TNotifyEvent; | 130 | FOnCriteria: TNotifyEvent; |
| 131 | + FOnTargetCriteria : TNotifyEvent; | ||
| 130 | function RowMod(R:TGameRow):TGameRow; | 132 | function RowMod(R:TGameRow):TGameRow; |
| 131 | procedure CriteriaEvent; | 133 | procedure CriteriaEvent; |
| 132 | public | 134 | public |
| @@ -137,6 +139,7 @@ type | @@ -137,6 +139,7 @@ type | ||
| 137 | function ConsequenceFromPlayerID(AID:string):string; | 139 | function ConsequenceFromPlayerID(AID:string):string; |
| 138 | procedure Clean; | 140 | procedure Clean; |
| 139 | property OnCriteria : TNotifyEvent read FOnCriteria write FOncriteria; | 141 | property OnCriteria : TNotifyEvent read FOnCriteria write FOncriteria; |
| 142 | + property OnTargetCriteria : TNotifyEvent read FOnTargetCriteria write FOnTargetCriteria; | ||
| 140 | property Fired : Boolean read FFired; | 143 | property Fired : Boolean read FFired; |
| 141 | property Consequence : TConsequence read FConsequence; | 144 | property Consequence : TConsequence read FConsequence; |
| 142 | property Criteria : TCriteria read FCriteria; | 145 | property Criteria : TCriteria read FCriteria; |
| @@ -184,10 +187,10 @@ type | @@ -184,10 +187,10 @@ type | ||
| 184 | TCondition = record | 187 | TCondition = record |
| 185 | ConditionName : string; | 188 | ConditionName : string; |
| 186 | Contingencies : TContingencies; // for producing points during the condition | 189 | Contingencies : TContingencies; // for producing points during the condition |
| 187 | - Interlocks : record | ||
| 188 | - Count : integer; // culturant, | ||
| 189 | - History: array of Boolean; // to calculate interlock porcentage in the last cycles. sync with OnCycles | ||
| 190 | - end; | 190 | + //Interlocks : record |
| 191 | + // Count : integer; // culturant, | ||
| 192 | + // History: array of Boolean; // to calculate interlock porcentage in the last cycles. sync with OnCycles | ||
| 193 | + //end; | ||
| 191 | 194 | ||
| 192 | Points : record | 195 | Points : record |
| 193 | Count : TPoints; // sum of points produced during the condition | 196 | Count : TPoints; // sum of points produced during the condition |
| @@ -235,6 +238,7 @@ procedure TContingency.CriteriaEvent; | @@ -235,6 +238,7 @@ procedure TContingency.CriteriaEvent; | ||
| 235 | begin | 238 | begin |
| 236 | FFired:=True; | 239 | FFired:=True; |
| 237 | if Assigned(FOnCriteria) then FOnCriteria(Self); | 240 | if Assigned(FOnCriteria) then FOnCriteria(Self); |
| 241 | + if Assigned(FOnTargetCriteria) then FOnTargetCriteria(Self); | ||
| 238 | end; | 242 | end; |
| 239 | 243 | ||
| 240 | constructor TContingency.Create(AOwner:TComponent;AConsequence:TConsequence;ACriteria:TCriteria;IsMeta:Boolean); | 244 | constructor TContingency.Create(AOwner:TComponent;AConsequence:TConsequence;ACriteria:TCriteria;IsMeta:Boolean); |
| @@ -646,6 +650,9 @@ end; | @@ -646,6 +650,9 @@ end; | ||
| 646 | procedure TConsequence.PresentPoints; | 650 | procedure TConsequence.PresentPoints; |
| 647 | begin | 651 | begin |
| 648 | //is gscPoints in FStyle then just in case... | 652 | //is gscPoints in FStyle then just in case... |
| 653 | + if gscI in FStyle then | ||
| 654 | + FormMatrixGame.LabelIndACount.Caption := IntToStr(StrToInt(FormMatrixGame.LabelIndACount.Caption) + FP.ResultAsInteger); | ||
| 655 | + | ||
| 649 | if gscA in FStyle then | 656 | if gscA in FStyle then |
| 650 | FormMatrixGame.LabelIndACount.Caption := IntToStr(StrToInt(FormMatrixGame.LabelIndACount.Caption) + FP.ResultAsInteger); | 657 | FormMatrixGame.LabelIndACount.Caption := IntToStr(StrToInt(FormMatrixGame.LabelIndACount.Caption) + FP.ResultAsInteger); |
| 651 | 658 | ||
| @@ -656,6 +663,14 @@ begin | @@ -656,6 +663,14 @@ begin | ||
| 656 | FormMatrixGame.LabelGroupCount.Caption:= IntToStr(StrToInt(FormMatrixGame.LabelGroupCount.Caption) + FP.ResultAsInteger); | 663 | FormMatrixGame.LabelGroupCount.Caption:= IntToStr(StrToInt(FormMatrixGame.LabelGroupCount.Caption) + FP.ResultAsInteger); |
| 657 | end; | 664 | end; |
| 658 | 665 | ||
| 666 | +procedure TConsequence.PresentPoints(APlayerBox: TPlayerBox); | ||
| 667 | +begin | ||
| 668 | + if gscG in FStyle then | ||
| 669 | + FormMatrixGame.LabelGroupCount.Caption:= IntToStr(StrToInt(FormMatrixGame.LabelGroupCount.Caption) + FP.ResultAsInteger) | ||
| 670 | + else | ||
| 671 | + APlayerBox.LabelPointsCount.Caption := IntToStr(StrToInt(APlayerBox.LabelPointsCount.Caption) + FP.ResultAsInteger); | ||
| 672 | +end; | ||
| 673 | + | ||
| 659 | function TConsequence.GetShouldPublishMessage: Boolean; // for players only | 674 | function TConsequence.GetShouldPublishMessage: Boolean; // for players only |
| 660 | begin | 675 | begin |
| 661 | Result := gscBroadcastMessage in FStyle; | 676 | Result := gscBroadcastMessage in FStyle; |
units/game_experiment.pas
| @@ -85,6 +85,7 @@ type | @@ -85,6 +85,7 @@ type | ||
| 85 | procedure SetResearcherCanPlay(AValue: Boolean); | 85 | procedure SetResearcherCanPlay(AValue: Boolean); |
| 86 | procedure SetSendChatHistoryForNewPlayers(AValue: Boolean); | 86 | procedure SetSendChatHistoryForNewPlayers(AValue: Boolean); |
| 87 | procedure SetState(AValue: TExperimentState); | 87 | procedure SetState(AValue: TExperimentState); |
| 88 | + procedure SetTargetInterlocking; | ||
| 88 | private | 89 | private |
| 89 | FABPoints: Boolean; | 90 | FABPoints: Boolean; |
| 90 | FChangeGeneration: string; | 91 | FChangeGeneration: string; |
| @@ -95,9 +96,11 @@ type | @@ -95,9 +96,11 @@ type | ||
| 95 | FOnEndCycle: TNotifyEvent; | 96 | FOnEndCycle: TNotifyEvent; |
| 96 | FOnEndExperiment: TNotifyEvent; | 97 | FOnEndExperiment: TNotifyEvent; |
| 97 | FOnEndGeneration: TNotifyEvent; | 98 | FOnEndGeneration: TNotifyEvent; |
| 99 | + FOnTargetInterlocking: TNotifyEvent; | ||
| 98 | procedure Consequence(Sender : TObject); | 100 | procedure Consequence(Sender : TObject); |
| 99 | function GetPlayerToKick: string; | 101 | function GetPlayerToKick: string; |
| 100 | procedure Interlocking(Sender : TObject); | 102 | procedure Interlocking(Sender : TObject); |
| 103 | + procedure TargetInterlocking(Sender : TObject); | ||
| 101 | procedure SetPlayersQueue(AValue: string); | 104 | procedure SetPlayersQueue(AValue: string); |
| 102 | procedure WriteReportHeader; | 105 | procedure WriteReportHeader; |
| 103 | procedure WriteReportRowNames; | 106 | procedure WriteReportRowNames; |
| @@ -136,6 +139,7 @@ type | @@ -136,6 +139,7 @@ type | ||
| 136 | property CurrentCondition : integer read FCurrentCondition write FCurrentCondition; | 139 | property CurrentCondition : integer read FCurrentCondition write FCurrentCondition; |
| 137 | property Contingency[C, I : integer] : TContingency read GetContingency write SetContingency; | 140 | property Contingency[C, I : integer] : TContingency read GetContingency write SetContingency; |
| 138 | property ContingenciesCount[C:integer]:integer read GetContingenciesCount; | 141 | property ContingenciesCount[C:integer]:integer read GetContingenciesCount; |
| 142 | + property Cycles : integer read GetCurrentAbsoluteCycle; | ||
| 139 | property Player[I : integer] : TPlayer read GetPlayer write SetPlayer; | 143 | property Player[I : integer] : TPlayer read GetPlayer write SetPlayer; |
| 140 | property PlayerFromID[S : UTF8string ] : TPlayer read GetPlayer write SetPlayer; | 144 | property PlayerFromID[S : UTF8string ] : TPlayer read GetPlayer write SetPlayer; |
| 141 | property PlayersCount : integer read GetPlayersCount; | 145 | property PlayersCount : integer read GetPlayersCount; |
| @@ -161,6 +165,7 @@ type | @@ -161,6 +165,7 @@ type | ||
| 161 | property OnEndExperiment : TNotifyEvent read FOnEndExperiment write SetOnEndExperiment; | 165 | property OnEndExperiment : TNotifyEvent read FOnEndExperiment write SetOnEndExperiment; |
| 162 | property OnConsequence : TNotifyEvent read FOnConsequence write SetOnConsequence; | 166 | property OnConsequence : TNotifyEvent read FOnConsequence write SetOnConsequence; |
| 163 | property OnInterlocking : TNotifyEvent read FOnInterlocking write SetOnInterlocking; | 167 | property OnInterlocking : TNotifyEvent read FOnInterlocking write SetOnInterlocking; |
| 168 | + property OnTargetInterlocking : TNotifyEvent read FOnTargetInterlocking write FOnTargetInterlocking; | ||
| 164 | end; | 169 | end; |
| 165 | 170 | ||
| 166 | resourcestring | 171 | resourcestring |
| @@ -246,7 +251,7 @@ var | @@ -246,7 +251,7 @@ var | ||
| 246 | begin | 251 | begin |
| 247 | if Assigned(FOnEndCondition) then FOnEndCondition(Self); | 252 | if Assigned(FOnEndCondition) then FOnEndCondition(Self); |
| 248 | Inc(FCurrentCondition); | 253 | Inc(FCurrentCondition); |
| 249 | - if FCurrentCondition = ConditionsCount-1 then | 254 | + if FCurrentCondition = ConditionsCount then |
| 250 | begin | 255 | begin |
| 251 | EndExperiment; | 256 | EndExperiment; |
| 252 | Exit; | 257 | Exit; |
| @@ -264,13 +269,13 @@ begin | @@ -264,13 +269,13 @@ begin | ||
| 264 | case FConditions[CurrentCondition].EndCriterium.Style of | 269 | case FConditions[CurrentCondition].EndCriterium.Style of |
| 265 | gecWhichComeFirst: | 270 | gecWhichComeFirst: |
| 266 | begin | 271 | begin |
| 267 | - if (GetCurrentAbsoluteCycle = FConditions[CurrentCondition].EndCriterium.AbsoluteCycles) or | 272 | + if (GetCurrentAbsoluteCycle = FConditions[CurrentCondition].EndCriterium.AbsoluteCycles-1) or |
| 268 | (LInterlocks >= FConditions[CurrentCondition].EndCriterium.InterlockingPorcentage) then | 273 | (LInterlocks >= FConditions[CurrentCondition].EndCriterium.InterlockingPorcentage) then |
| 269 | EndCondition; | 274 | EndCondition; |
| 270 | 275 | ||
| 271 | end; | 276 | end; |
| 272 | gecAbsoluteCycles: | 277 | gecAbsoluteCycles: |
| 273 | - if GetCurrentAbsoluteCycle = FConditions[CurrentCondition].EndCriterium.AbsoluteCycles then | 278 | + if GetCurrentAbsoluteCycle = FConditions[CurrentCondition].EndCriterium.AbsoluteCycles-1 then |
| 274 | EndCondition; | 279 | EndCondition; |
| 275 | 280 | ||
| 276 | gecInterlockingPorcentage: | 281 | gecInterlockingPorcentage: |
| @@ -288,6 +293,9 @@ var c:integer; | @@ -288,6 +293,9 @@ var c:integer; | ||
| 288 | begin | 293 | begin |
| 289 | c := CurrentCondition; | 294 | c := CurrentCondition; |
| 290 | Result := (Condition[c].Cycles.Value*Condition[c].Cycles.Generation)+Condition[c].Cycles.Count; | 295 | Result := (Condition[c].Cycles.Value*Condition[c].Cycles.Generation)+Condition[c].Cycles.Count; |
| 296 | + {$IFDEF DEBUG} | ||
| 297 | + WriteLn('TExperiment.GetCurrentAbsoluteCycle:',Result); | ||
| 298 | + {$ENDIF} | ||
| 291 | end; | 299 | end; |
| 292 | 300 | ||
| 293 | function TExperiment.GetPlayer(I : integer): TPlayer; | 301 | function TExperiment.GetPlayer(I : integer): TPlayer; |
| @@ -382,6 +390,9 @@ begin | @@ -382,6 +390,9 @@ begin | ||
| 382 | // return result in porcentage | 390 | // return result in porcentage |
| 383 | Result := (i*100)/LContingencyResults.Count; | 391 | Result := (i*100)/LContingencyResults.Count; |
| 384 | end; | 392 | end; |
| 393 | + {$IFDEF DEBUG} | ||
| 394 | + WriteLn('TExperiment.GetInterlockingPorcentageInLastCycles:',Result); | ||
| 395 | + {$ENDIF} | ||
| 385 | end; | 396 | end; |
| 386 | 397 | ||
| 387 | function TExperiment.GetConsequenceStringFromChoice(P: TPlayer): Utf8string; | 398 | function TExperiment.GetConsequenceStringFromChoice(P: TPlayer): Utf8string; |
| @@ -542,14 +553,25 @@ begin | @@ -542,14 +553,25 @@ begin | ||
| 542 | FState:=AValue; | 553 | FState:=AValue; |
| 543 | end; | 554 | end; |
| 544 | 555 | ||
| 556 | +procedure TExperiment.SetTargetInterlocking; | ||
| 557 | +var i : integer; | ||
| 558 | +begin | ||
| 559 | + for i:= 0 to ContingenciesCount[CurrentCondition] do | ||
| 560 | + if Condition[CurrentCondition].Contingencies[i].Meta then | ||
| 561 | + begin | ||
| 562 | + Condition[CurrentCondition].Contingencies[i].OnTargetCriteria:=@TargetInterlocking; | ||
| 563 | + Break; | ||
| 564 | + end; | ||
| 565 | +end; | ||
| 566 | + | ||
| 545 | procedure TExperiment.Consequence(Sender: TObject); | 567 | procedure TExperiment.Consequence(Sender: TObject); |
| 546 | begin | 568 | begin |
| 547 | if Assigned(FOnConsequence) then FOnConsequence(Sender); | 569 | if Assigned(FOnConsequence) then FOnConsequence(Sender); |
| 548 | end; | 570 | end; |
| 549 | 571 | ||
| 550 | -procedure TExperiment.Interlocking(Sender: TObject); | 572 | +procedure TExperiment.TargetInterlocking(Sender: TObject); |
| 551 | begin | 573 | begin |
| 552 | - if Assigned(FOnInterlocking) then FOnInterlocking(Sender); | 574 | + if Assigned(FOnTargetInterlocking) then FOnTargetInterlocking(Sender); |
| 553 | end; | 575 | end; |
| 554 | 576 | ||
| 555 | procedure TExperiment.SetPlayersQueue(AValue: string); | 577 | procedure TExperiment.SetPlayersQueue(AValue: string); |
| @@ -573,6 +595,11 @@ begin | @@ -573,6 +595,11 @@ begin | ||
| 573 | Result := FPlayers[0].ID; | 595 | Result := FPlayers[0].ID; |
| 574 | end; | 596 | end; |
| 575 | 597 | ||
| 598 | +procedure TExperiment.Interlocking(Sender: TObject); | ||
| 599 | +begin | ||
| 600 | + if Assigned(FOnInterlocking) then FOnInterlocking(Sender); | ||
| 601 | +end; | ||
| 602 | + | ||
| 576 | 603 | ||
| 577 | procedure TExperiment.WriteReportHeader; | 604 | procedure TExperiment.WriteReportHeader; |
| 578 | var | 605 | var |
| @@ -715,10 +742,15 @@ begin | @@ -715,10 +742,15 @@ begin | ||
| 715 | end; | 742 | end; |
| 716 | 743 | ||
| 717 | constructor TExperiment.Create(AOwner: TComponent;AppPath:string); | 744 | constructor TExperiment.Create(AOwner: TComponent;AppPath:string); |
| 745 | +var i : integer; | ||
| 718 | begin | 746 | begin |
| 719 | inherited Create(AOwner); | 747 | inherited Create(AOwner); |
| 720 | FTurnsRandom := TStringList.Create; | 748 | FTurnsRandom := TStringList.Create; |
| 721 | LoadExperimentFromResource(Self); | 749 | LoadExperimentFromResource(Self); |
| 750 | + | ||
| 751 | + // TODO: Allow custom target interlocking. Now just taking the first meta, as usual in the lab. | ||
| 752 | + SetTargetInterlocking; | ||
| 753 | + | ||
| 722 | CheckNeedForRandomTurns; | 754 | CheckNeedForRandomTurns; |
| 723 | 755 | ||
| 724 | FReportReader := TReportReader.Create; | 756 | FReportReader := TReportReader.Create; |
units/game_resources.pas
| @@ -216,10 +216,10 @@ const | @@ -216,10 +216,10 @@ const | ||
| 216 | ( | 216 | ( |
| 217 | ConditionName : ''; | 217 | ConditionName : ''; |
| 218 | Contingencies : nil; | 218 | Contingencies : nil; |
| 219 | - Interlocks : ( | ||
| 220 | - Count : 0; | ||
| 221 | - History : nil; | ||
| 222 | - ); | 219 | + //Interlocks : ( |
| 220 | + // Count : 0; | ||
| 221 | + // History : nil; | ||
| 222 | + //); | ||
| 223 | 223 | ||
| 224 | Points : ( | 224 | Points : ( |
| 225 | Count : ( A:0; B:0; G:0; ); | 225 | Count : ( A:0; B:0; G:0; ); |
units/game_visual_elements.pas
| @@ -25,16 +25,19 @@ type | @@ -25,16 +25,19 @@ type | ||
| 25 | PanelLastColor : TPanel; | 25 | PanelLastColor : TPanel; |
| 26 | LabelLastRow : TLabel; | 26 | LabelLastRow : TLabel; |
| 27 | LabelLastRowCount : TLabel; | 27 | LabelLastRowCount : TLabel; |
| 28 | + LabelPoints : TLabel; | ||
| 29 | + LabelPointsCount : TLabel; | ||
| 28 | private | 30 | private |
| 29 | FID: string; | 31 | FID: string; |
| 30 | public | 32 | public |
| 31 | - constructor Create(AOwner: TComponent;AID:string); reintroduce; | 33 | + constructor Create(AOwner: TComponent;AID:string;Admin:Boolean=False); reintroduce; |
| 32 | property ID : string read FID write FID; | 34 | property ID : string read FID write FID; |
| 33 | end; | 35 | end; |
| 34 | 36 | ||
| 35 | resourcestring | 37 | resourcestring |
| 36 | CAP_ROW = 'Linha:'; | 38 | CAP_ROW = 'Linha:'; |
| 37 | CAP_COLOR = 'Cor:'; | 39 | CAP_COLOR = 'Cor:'; |
| 40 | + CAP_POINTS = 'Pontos:'; | ||
| 38 | CAP_NA = 'NA'; | 41 | CAP_NA = 'NA'; |
| 39 | CAP_WAINTING_FOR_PLAYER = 'Esperando Jogador...'; | 42 | CAP_WAINTING_FOR_PLAYER = 'Esperando Jogador...'; |
| 40 | 43 | ||
| @@ -42,7 +45,7 @@ implementation | @@ -42,7 +45,7 @@ implementation | ||
| 42 | 45 | ||
| 43 | { TPlayerBox } | 46 | { TPlayerBox } |
| 44 | 47 | ||
| 45 | -constructor TPlayerBox.Create(AOwner: TComponent; AID: string); | 48 | +constructor TPlayerBox.Create(AOwner: TComponent; AID: string; Admin: Boolean); |
| 46 | begin | 49 | begin |
| 47 | inherited Create(AOwner); | 50 | inherited Create(AOwner); |
| 48 | FID := AID; | 51 | FID := AID; |
| @@ -74,6 +77,17 @@ begin | @@ -74,6 +77,17 @@ begin | ||
| 74 | LabelLastRowCount.Caption:=CAP_NA; | 77 | LabelLastRowCount.Caption:=CAP_NA; |
| 75 | LabelLastRowCount.Parent := Self; | 78 | LabelLastRowCount.Parent := Self; |
| 76 | Enabled:= False; | 79 | Enabled:= False; |
| 80 | + | ||
| 81 | + if Admin then | ||
| 82 | + begin | ||
| 83 | + LabelPoints:= TLabel.Create(Self); | ||
| 84 | + LabelPoints.Caption:=CAP_POINTS; | ||
| 85 | + LabelPoints.Parent := Self; | ||
| 86 | + | ||
| 87 | + LabelPointsCount:= TLabel.Create(Self); | ||
| 88 | + LabelPointsCount.Caption:='0'; | ||
| 89 | + LabelPointsCount.Parent := Self; | ||
| 90 | + end; | ||
| 77 | //LabelLastRow.AutoSize := False; | 91 | //LabelLastRow.AutoSize := False; |
| 78 | end; | 92 | end; |
| 79 | 93 |
units/game_zmq_actors.pas
units/string_methods.pas
| @@ -234,6 +234,10 @@ begin | @@ -234,6 +234,10 @@ begin | ||
| 234 | 'MENSAGEM A TODOS' : Result:= gscBroadcastMessage; | 234 | 'MENSAGEM A TODOS' : Result:= gscBroadcastMessage; |
| 235 | 'PONTOS' : Result:= gscPoints; | 235 | 'PONTOS' : Result:= gscPoints; |
| 236 | 'PONTOS COM VARIAÇÃO' : Result:= gscVariablePoints; | 236 | 'PONTOS COM VARIAÇÃO' : Result:= gscVariablePoints; |
| 237 | + 'PONTOS A' : Result:= gscA; | ||
| 238 | + 'PONTOS B' : Result:= gscB; | ||
| 239 | + 'PONTOS G' : Result:= gscG; | ||
| 240 | + 'PONTOS I' : Result:= gscI; | ||
| 237 | end; | 241 | end; |
| 238 | end; | 242 | end; |
| 239 | 243 | ||
| @@ -245,6 +249,10 @@ begin | @@ -245,6 +249,10 @@ begin | ||
| 245 | gscBroadcastMessage : Result:= 'MENSAGEM A TODOS'; | 249 | gscBroadcastMessage : Result:= 'MENSAGEM A TODOS'; |
| 246 | gscPoints : Result:= 'PONTOS' ; | 250 | gscPoints : Result:= 'PONTOS' ; |
| 247 | gscVariablePoints : Result:= 'PONTOS COM VARIAÇÃO'; | 251 | gscVariablePoints : Result:= 'PONTOS COM VARIAÇÃO'; |
| 252 | + gscA : Result:= 'PONTOS A'; | ||
| 253 | + gscB : Result:= 'PONTOS B'; | ||
| 254 | + gscG : Result:= 'PONTOS G'; | ||
| 255 | + gscI : Result:= 'PONTOS I'; | ||
| 248 | end; | 256 | end; |
| 249 | end; | 257 | end; |
| 250 | 258 | ||
| @@ -358,6 +366,7 @@ begin | @@ -358,6 +366,7 @@ begin | ||
| 358 | gscA:Result += 'A'; | 366 | gscA:Result += 'A'; |
| 359 | gscB:Result += 'B'; | 367 | gscB:Result += 'B'; |
| 360 | gscG:Result += 'G'; | 368 | gscG:Result += 'G'; |
| 369 | + gscI:Result += 'I'; | ||
| 361 | end; | 370 | end; |
| 362 | Result += ','; | 371 | Result += ','; |
| 363 | end; | 372 | end; |