equal
deleted
inserted
replaced
577 |
577 |
578 TestShotgun:= BadTurn |
578 TestShotgun:= BadTurn |
579 end; |
579 end; |
580 |
580 |
581 function TestDesertEagle(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt; |
581 function TestDesertEagle(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt; |
582 var Vx, Vy, x, y, t: real; |
582 var Vx, Vy, x, y, t, dmgMod: real; |
583 d: Longword; |
583 d: Longword; |
584 valueResult: LongInt; |
584 fallDmg, valueResult: LongInt; |
585 begin |
585 begin |
|
586 dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent; |
586 Level:= Level; // avoid compiler hint |
587 Level:= Level; // avoid compiler hint |
587 ap.ExplR:= 0; |
588 ap.ExplR:= 0; |
588 ap.Time:= 0; |
589 ap.Time:= 0; |
589 ap.Power:= 1; |
590 ap.Power:= 1; |
590 x:= hwFloat2Float(Me^.X); |
591 x:= hwFloat2Float(Me^.X); |
610 or (trunc(y) > LAND_HEIGHT) |
611 or (trunc(y) > LAND_HEIGHT) |
611 or (d > 200); |
612 or (d > 200); |
612 |
613 |
613 if Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 3 then |
614 if Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 3 then |
614 begin |
615 begin |
615 if TraceShoveDrown(Me, Targ.X, Targ.Y, vX * 0.005 * 20, vY * 0.005 * 20) then |
616 fallDmg:= TraceShoveFall(Me, Targ.X, Targ.Y, vX * 0.005 * 20, vY * 0.005 * 20); |
|
617 if fallDmg < 0 then |
616 valueResult:= 204800 |
618 valueResult:= 204800 |
617 else valueResult:= Max(0, (4 - d div 50) * 7 * 1024) |
619 else valueResult:= Max(0, (4 - d div 50) * trunc((7+fallDmg)*dmgMod) * 1024) |
618 end |
620 end |
619 else |
621 else |
620 valueResult:= BadTurn; |
622 valueResult:= BadTurn; |
621 TestDesertEagle:= valueResult |
623 TestDesertEagle:= valueResult |
622 end; |
624 end; |