hedgewars/uGears.pas
changeset 4602 ec84fb564bab
parent 4578 f3cf226fad16
child 4611 445d382cd401
equal deleted inserted replaced
4600:5a3b1dbdd4c9 4602:ec84fb564bab
   218                 gear^.nImpactSounds:= 1;
   218                 gear^.nImpactSounds:= 1;
   219                 gear^.AdvBounce:= 1;
   219                 gear^.AdvBounce:= 1;
   220                 gear^.Radius:= 5;
   220                 gear^.Radius:= 5;
   221                 gear^.Elasticity:= _0_8;
   221                 gear^.Elasticity:= _0_8;
   222                 gear^.Friction:= _0_8;
   222                 gear^.Friction:= _0_8;
       
   223                 gear^.Density:= _1_5;
   223                 gear^.RenderTimer:= true;
   224                 gear^.RenderTimer:= true;
   224                 if gear^.Timer = 0 then gear^.Timer:= 3000
   225                 if gear^.Timer = 0 then gear^.Timer:= 3000
   225                 end;
   226                 end;
   226   gtWatermelon: begin
   227   gtWatermelon: begin
   227                 gear^.ImpactSound:= sndMelonImpact;
   228                 gear^.ImpactSound:= sndMelonImpact;
   228                 gear^.nImpactSounds:= 1;
   229                 gear^.nImpactSounds:= 1;
   229                 gear^.AdvBounce:= 1;
   230                 gear^.AdvBounce:= 1;
   230                 gear^.Radius:= 6;
   231                 gear^.Radius:= 6;
   231                 gear^.Elasticity:= _0_8;
   232                 gear^.Elasticity:= _0_8;
   232                 gear^.Friction:= _0_995;
   233                 gear^.Friction:= _0_995;
       
   234                 gear^.Density:= _2;
   233                 gear^.RenderTimer:= true;
   235                 gear^.RenderTimer:= true;
   234                 if gear^.Timer = 0 then gear^.Timer:= 3000
   236                 if gear^.Timer = 0 then gear^.Timer:= 3000
       
   237                 end;
       
   238   gtMelonPiece: begin
       
   239                 gear^.Density:= _2;
   235                 end;
   240                 end;
   236     gtHedgehog: begin
   241     gtHedgehog: begin
   237                 gear^.AdvBounce:= 1;
   242                 gear^.AdvBounce:= 1;
   238                 gear^.Radius:= cHHRadius;
   243                 gear^.Radius:= cHHRadius;
   239                 gear^.Elasticity:= _0_35;
   244                 gear^.Elasticity:= _0_35;
   244                     if gear^.Hedgehog^.BotLevel > 0 then
   249                     if gear^.Hedgehog^.BotLevel > 0 then
   245                         gear^.Hedgehog^.Effects[heResurrectable] := true;
   250                         gear^.Hedgehog^.Effects[heResurrectable] := true;
   246                 end;
   251                 end;
   247        gtShell: begin
   252        gtShell: begin
   248                 gear^.Radius:= 4;
   253                 gear^.Radius:= 4;
       
   254                 gear^.Density:= _1;
   249                 end;
   255                 end;
   250        gtSnowball: begin
   256        gtSnowball: begin
   251                 gear^.Radius:= 4;
   257                 gear^.Radius:= 4;
   252                 gear^.Elasticity:= _1;
   258                 gear^.Elasticity:= _1;
   253                 gear^.Friction:= _1;
   259                 gear^.Friction:= _1;
       
   260                 gear^.Density:= _0_5;
   254                 end;
   261                 end;
   255        gtGrave: begin
   262        gtGrave: begin
   256                 gear^.ImpactSound:= sndGraveImpact;
   263                 gear^.ImpactSound:= sndGraveImpact;
   257                 gear^.nImpactSounds:= 1;
   264                 gear^.nImpactSounds:= 1;
   258                 gear^.Radius:= 10;
   265                 gear^.Radius:= 10;
   286                 gear^.Health:= 10;
   293                 gear^.Health:= 10;
   287                 gear^.State:= gear^.State or gstMoving;
   294                 gear^.State:= gear^.State or gstMoving;
   288                 gear^.Radius:= 2;
   295                 gear^.Radius:= 2;
   289                 gear^.Elasticity:= _0_55;
   296                 gear^.Elasticity:= _0_55;
   290                 gear^.Friction:= _0_995;
   297                 gear^.Friction:= _0_995;
       
   298                 gear^.Density:= _0_9;
   291                 if cMinesTime < 0 then
   299                 if cMinesTime < 0 then
   292                     gear^.Timer:= getrandom(51)*100
   300                     gear^.Timer:= getrandom(51)*100
   293                 else
   301                 else
   294                     gear^.Timer:= cMinesTime;
   302                     gear^.Timer:= cMinesTime;
   295                 end;
   303                 end;
   297                 gear^.Health:= 10;
   305                 gear^.Health:= 10;
   298                 gear^.State:= gear^.State or gstMoving;
   306                 gear^.State:= gear^.State or gstMoving;
   299                 gear^.Radius:= 2;
   307                 gear^.Radius:= 2;
   300                 gear^.Elasticity:= _0_55;
   308                 gear^.Elasticity:= _0_55;
   301                 gear^.Friction:= _0_995;
   309                 gear^.Friction:= _0_995;
       
   310                 gear^.Density:= _0_9;
   302                 gear^.Timer:= 500;
   311                 gear^.Timer:= 500;
   303                 end;
   312                 end;
   304         gtCase: begin
   313         gtCase: begin
   305                 gear^.ImpactSound:= sndGraveImpact;
   314                 gear^.ImpactSound:= sndGraveImpact;
   306                 gear^.nImpactSounds:= 1;
   315                 gear^.nImpactSounds:= 1;
   311                 gear^.ImpactSound:= sndGrenadeImpact;
   320                 gear^.ImpactSound:= sndGrenadeImpact;
   312                 gear^.nImpactSounds:= 1;
   321                 gear^.nImpactSounds:= 1;
   313                 gear^.Radius:= 16;
   322                 gear^.Radius:= 16;
   314                 gear^.Elasticity:= _0_4;
   323                 gear^.Elasticity:= _0_4;
   315                 gear^.Friction:= _0_995;
   324                 gear^.Friction:= _0_995;
       
   325                 gear^.Density:= _16;
   316                 gear^.Health:= cBarrelHealth
   326                 gear^.Health:= cBarrelHealth
   317                 end;
   327                 end;
   318   gtDEagleShot: begin
   328   gtDEagleShot: begin
   319                 gear^.Radius:= 1;
   329                 gear^.Radius:= 1;
   320                 gear^.Health:= 50
   330                 gear^.Health:= 50
   325                 end;
   335                 end;
   326     gtDynamite: begin
   336     gtDynamite: begin
   327                 gear^.Radius:= 3;
   337                 gear^.Radius:= 3;
   328                 gear^.Elasticity:= _0_55;
   338                 gear^.Elasticity:= _0_55;
   329                 gear^.Friction:= _0_03;
   339                 gear^.Friction:= _0_03;
       
   340                 gear^.Density:= _0_8;
   330                 gear^.Timer:= 5000;
   341                 gear^.Timer:= 5000;
   331                 end;
   342                 end;
   332      gtCluster: begin
   343      gtCluster: begin
   333                 gear^.Radius:= 2;
   344                 gear^.Radius:= 2;
       
   345                 gear^.Density:= _0_8;
   334                 gear^.RenderTimer:= true
   346                 gear^.RenderTimer:= true
   335                 end;
   347                 end;
   336       gtShover: gear^.Radius:= 20;
   348       gtShover: gear^.Radius:= 20;
   337        gtFlame: begin
   349        gtFlame: begin
   338                 gear^.Tag:= GetRandom(32);
   350                 gear^.Tag:= GetRandom(32);
   348                 gear^.Radius:= 15;
   360                 gear^.Radius:= 15;
   349                 gear^.Tag:= Y
   361                 gear^.Tag:= Y
   350                 end;
   362                 end;
   351      gtAirBomb: begin
   363      gtAirBomb: begin
   352                 gear^.Radius:= 5;
   364                 gear^.Radius:= 5;
       
   365                 gear^.Density:= _1_5;
   353                 end;
   366                 end;
   354    gtBlowTorch: begin
   367    gtBlowTorch: begin
   355                 gear^.Radius:= cHHRadius + cBlowTorchC;
   368                 gear^.Radius:= cHHRadius + cBlowTorchC;
   356                 gear^.Timer:= 7500
   369                 gear^.Timer:= 7500
   357                 end;
   370                 end;
   366                 gear^.Timer:= 0
   379                 gear^.Timer:= 0
   367                 end;
   380                 end;
   368       gtMortar: begin
   381       gtMortar: begin
   369                 gear^.Radius:= 4;
   382                 gear^.Radius:= 4;
   370                 gear^.Elasticity:= _0_2;
   383                 gear^.Elasticity:= _0_2;
   371                 gear^.Friction:= _0_08
   384                 gear^.Friction:= _0_08;
       
   385                 gear^.Density:= _1;
   372                 end;
   386                 end;
   373         gtWhip: gear^.Radius:= 20;
   387         gtWhip: gear^.Radius:= 20;
   374       gtHammer: gear^.Radius:= 20;
   388       gtHammer: gear^.Radius:= 20;
   375     gtKamikaze: begin
   389     gtKamikaze: begin
   376                 gear^.Health:= 2048;
   390                 gear^.Health:= 2048;
   389                 gear^.nImpactSounds:= 4;
   403                 gear^.nImpactSounds:= 4;
   390                 gear^.AdvBounce:= 1;
   404                 gear^.AdvBounce:= 1;
   391                 gear^.Radius:= 4;
   405                 gear^.Radius:= 4;
   392                 gear^.Elasticity:= _0_5;
   406                 gear^.Elasticity:= _0_5;
   393                 gear^.Friction:= _0_96;
   407                 gear^.Friction:= _0_96;
       
   408                 gear^.Density:= _1_5;
   394                 gear^.RenderTimer:= true;
   409                 gear^.RenderTimer:= true;
   395                 gear^.Timer:= 5000
   410                 gear^.Timer:= 5000
   396                 end;
   411                 end;
   397        gtDrill: begin
   412        gtDrill: begin
   398                 gear^.Timer:= 5000;
   413                 gear^.Timer:= 5000;
   399                 gear^.Radius:= 4
   414                 gear^.Radius:= 4;
       
   415                 gear^.Density:= _1;
   400                 end;
   416                 end;
   401         gtBall: begin
   417         gtBall: begin
   402                 gear^.ImpactSound:= sndGrenadeImpact;
   418                 gear^.ImpactSound:= sndGrenadeImpact;
   403                 gear^.nImpactSounds:= 1;
   419                 gear^.nImpactSounds:= 1;
   404                 gear^.AdvBounce:= 1;
   420                 gear^.AdvBounce:= 1;
   405                 gear^.Radius:= 5;
   421                 gear^.Radius:= 5;
   406                 gear^.Tag:= random(8);
   422                 gear^.Tag:= random(8);
   407                 gear^.Timer:= 5000;
   423                 gear^.Timer:= 5000;
   408                 gear^.Elasticity:= _0_7;
   424                 gear^.Elasticity:= _0_7;
   409                 gear^.Friction:= _0_995;
   425                 gear^.Friction:= _0_995;
       
   426                 gear^.Density:= _1_5;
   410                 end;
   427                 end;
   411      gtBallgun: begin
   428      gtBallgun: begin
   412                 gear^.Timer:= 5001;
   429                 gear^.Timer:= 5001;
   413                 end;
   430                 end;
   414      gtRCPlane: begin
   431      gtRCPlane: begin
   420                 gear^.Health:= 2000;
   437                 gear^.Health:= 2000;
   421                 gear^.Damage:= 100
   438                 gear^.Damage:= 100
   422                 end;
   439                 end;
   423      gtMolotov: begin
   440      gtMolotov: begin
   424                 gear^.Radius:= 6;
   441                 gear^.Radius:= 6;
       
   442                 gear^.Density:= _2;
   425                 end;
   443                 end;
   426        gtBirdy: begin
   444        gtBirdy: begin
   427                 gear^.Radius:= 16; // todo: check
   445                 gear^.Radius:= 16; // todo: check
   428                 gear^.Timer:= 0;
   446                 gear^.Timer:= 0;
   429                 gear^.Health := 2000;
   447                 gear^.Health := 2000;
   431                 end;
   449                 end;
   432          gtEgg: begin
   450          gtEgg: begin
   433                 gear^.Radius:= 4;
   451                 gear^.Radius:= 4;
   434                 gear^.Elasticity:= _0_6;
   452                 gear^.Elasticity:= _0_6;
   435                 gear^.Friction:= _0_96;
   453                 gear^.Friction:= _0_96;
       
   454                 gear^.Density:= _1;
   436                 if gear^.Timer = 0 then gear^.Timer:= 3000
   455                 if gear^.Timer = 0 then gear^.Timer:= 3000
   437                 end;
   456                 end;
   438       gtPortal: begin
   457       gtPortal: begin
   439                 gear^.ImpactSound:= sndMelonImpact;
   458                 gear^.ImpactSound:= sndMelonImpact;
   440                 gear^.nImpactSounds:= 1;
   459                 gear^.nImpactSounds:= 1;
   444                 gear^.Timer:= 15000;
   463                 gear^.Timer:= 15000;
   445                 gear^.RenderTimer:= false;
   464                 gear^.RenderTimer:= false;
   446                 gear^.Health:= 100;
   465                 gear^.Health:= 100;
   447                 end;
   466                 end;
   448        gtPiano: begin
   467        gtPiano: begin
   449                 gear^.Radius:= 32
   468                 gear^.Radius:= 32;
       
   469                 gear^.Density:= _50;
   450                 end;
   470                 end;
   451  gtSineGunShot: begin
   471  gtSineGunShot: begin
   452                 gear^.Radius:= 5;
   472                 gear^.Radius:= 5;
   453                 gear^.Health:= 6000;
   473                 gear^.Health:= 6000;
   454                 end;
   474                 end;
   470                 gear^.Tag := 47;
   490                 gear^.Tag := 47;
   471                 end;
   491                 end;
   472   gtNapalmBomb: begin
   492   gtNapalmBomb: begin
   473                 gear^.Timer:= 1000;
   493                 gear^.Timer:= 1000;
   474                 gear^.Radius:= 5;
   494                 gear^.Radius:= 5;
       
   495                 gear^.Density:= _1_5;
   475                 end;
   496                 end;
   476     end;
   497     end;
   477 
   498 
   478 InsertGearToList(gear);
   499 InsertGearToList(gear);
   479 AddGear:= gear;
   500 AddGear:= gear;