1481 Gear^.doStep:= @doStepKamikazeIdle |
1481 Gear^.doStep:= @doStepKamikazeIdle |
1482 end; |
1482 end; |
1483 |
1483 |
1484 //////////////////////////////////////////////////////////////////////////////// |
1484 //////////////////////////////////////////////////////////////////////////////// |
1485 const cakeh = 27; |
1485 const cakeh = 27; |
|
1486 cakeDmg = 75; |
1486 var CakePoints: array[0..Pred(cakeh)] of record x, y: hwFloat; end; |
1487 var CakePoints: array[0..Pred(cakeh)] of record x, y: hwFloat; end; |
1487 CakeI: Longword; |
1488 CakeI: Longword; |
1488 |
1489 |
|
1490 procedure doStepCakeExpl(Gear: PGear); |
|
1491 begin |
|
1492 inc(Gear^.Tag); |
|
1493 if Gear^.Tag < 2250 then exit; |
|
1494 |
|
1495 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), cakeDmg, EXPLAutoSound); |
|
1496 AfterAttack; |
|
1497 DeleteGear(Gear) |
|
1498 end; |
|
1499 |
1489 procedure doStepCakeDown(Gear: PGear); |
1500 procedure doStepCakeDown(Gear: PGear); |
1490 var i: Longword; |
1501 var i: Longword; |
|
1502 gi: PGear; |
|
1503 dmg: LongInt; |
1491 begin |
1504 begin |
1492 AllInactive:= false; |
1505 AllInactive:= false; |
1493 |
1506 |
1494 inc(Gear^.Tag); |
1507 inc(Gear^.Tag); |
1495 if Gear^.Tag < 100 then exit; |
1508 if Gear^.Tag < 100 then exit; |
1496 Gear^.Tag:= 0; |
1509 Gear^.Tag:= 0; |
1497 |
1510 |
1498 if Gear^.Pos = 0 then |
1511 if Gear^.Pos = 0 then |
1499 begin |
1512 begin |
1500 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 75, EXPLAutoSound); |
1513 gi:= GearsList; |
1501 AfterAttack; |
1514 while gi <> nil do |
1502 DeleteGear(Gear) |
1515 begin |
|
1516 dmg:= cakeDmg * 2 - hwRound(Distance(gi^.X - Gear^.X, gi^.Y - Gear^.Y)); |
|
1517 if (dmg > 1) and (gi^.Kind = gtHedgehog) then |
|
1518 gi^.State:= gi^.State or gstWinner; |
|
1519 gi:= gi^.NextGear |
|
1520 end; |
|
1521 Gear^.doStep:= @doStepCakeExpl; |
1503 end else dec(Gear^.Pos) |
1522 end else dec(Gear^.Pos) |
1504 end; |
1523 end; |
1505 |
1524 |
1506 |
1525 |
1507 procedure doStepCakeWork(Gear: PGear); |
1526 procedure doStepCakeWork(Gear: PGear); |