138 g:= AddGoal(g, gfKarma, gidKarma); // karma? |
138 g:= AddGoal(g, gfKarma, gidKarma); // karma? |
139 g:= AddGoal(g, gfPlaceHog, gidPlaceHog); // placement? |
139 g:= AddGoal(g, gfPlaceHog, gidPlaceHog); // placement? |
140 g:= AddGoal(g, gfArtillery, gidArtillery); // artillery? |
140 g:= AddGoal(g, gfArtillery, gidArtillery); // artillery? |
141 g:= AddGoal(g, gfSolidLand, gidSolidLand); // solid land? |
141 g:= AddGoal(g, gfSolidLand, gidSolidLand); // solid land? |
142 g:= AddGoal(g, gfSharedAmmo, gidSharedAmmo); // shared ammo? |
142 g:= AddGoal(g, gfSharedAmmo, gidSharedAmmo); // shared ammo? |
|
143 g:= AddGoal(g, gfResetHealth, gidResetHealth); |
|
144 g:= AddGoal(g, gfAISurvival, gidAISurvival); |
|
145 g:= AddGoal(g, gfInfAttack, gidInfAttack); |
|
146 g:= AddGoal(g, gfResetWeps, gidResetWeps); |
|
147 g:= AddGoal(g, gfPerHogAmmo, gidPerHogAmmo); |
143 |
148 |
144 // modified damage modificator? |
149 // modified damage modificator? |
145 if cDamagePercent <> 100 then |
150 if cDamagePercent <> 100 then |
146 g:= AddGoal(g, gfAny, gidDamageModifier, cDamagePercent); |
151 g:= AddGoal(g, gfAny, gidDamageModifier, cDamagePercent); |
147 |
152 |
149 ScreenFade:= sfFromBlack; |
154 ScreenFade:= sfFromBlack; |
150 ScreenFadeValue:= sfMax; |
155 ScreenFadeValue:= sfMax; |
151 ScreenFadeSpeed:= 1; |
156 ScreenFadeSpeed:= 1; |
152 |
157 |
153 // modified mine timers? |
158 // modified mine timers? |
154 if cMinesTime <> 3000 then |
159 if cMinesTime <> 3 then |
155 begin |
160 begin |
156 if cMinesTime = 0 then |
161 if cMinesTime = 0 then |
157 g:= AddGoal(g, gfMines, gidNoMineTimer) |
162 g:= AddGoal(g, gfAny, gidNoMineTimer) |
158 else if cMinesTime < 0 then |
163 else if cMinesTime < 0 then |
159 g:= AddGoal(g, gfMines, gidRandomMineTimer) |
164 g:= AddGoal(g, gfAny, gidRandomMineTimer) |
160 else |
165 else |
161 g:= AddGoal(g, gfMines, gidMineTimer, cMinesTime div 1000); |
166 g:= AddGoal(g, gfAny, gidMineTimer, cMinesTime); |
162 end; |
167 end; |
163 |
168 |
164 // if the string has been set, show it for (default timeframe) seconds |
169 // if the string has been set, show it for (default timeframe) seconds |
165 if g <> '' then ShowMission(trgoal[gidCaption], trgoal[gidSubCaption], g, 1, 0); |
170 if g <> '' then ShowMission(trgoal[gidCaption], trgoal[gidSubCaption], g, 1, 0); |
166 |
171 |
763 begin |
768 begin |
764 tdx:= hwSign(Gear^.dX) * Sin(Gear^.Angle * Pi / cMaxAngle); |
769 tdx:= hwSign(Gear^.dX) * Sin(Gear^.Angle * Pi / cMaxAngle); |
765 tdy:= - Cos(Gear^.Angle * Pi / cMaxAngle); |
770 tdy:= - Cos(Gear^.Angle * Pi / cMaxAngle); |
766 for i:= (Gear^.Power * 24) div cPowerDivisor downto 0 do |
771 for i:= (Gear^.Power * 24) div cPowerDivisor downto 0 do |
767 DrawSprite(sprPower, |
772 DrawSprite(sprPower, |
768 int64(hwRound(Gear^.X)) + GetLaunchX(CurAmmoType, hwSign(Gear^.dX), Gear^.Angle) + round(WorldDx + tdx * (24 + i * 2)) - 16, |
773 hwRound(Gear^.X) + GetLaunchX(CurAmmoType, hwSign(Gear^.dX), Gear^.Angle) + LongInt(round(WorldDx + tdx * (24 + i * 2))) - 16, |
769 int64(hwRound(Gear^.Y)) + GetLaunchY(CurAmmoType, Gear^.Angle) + round(WorldDy + tdy * (24 + i * 2)) - 16, |
774 hwRound(Gear^.Y) + GetLaunchY(CurAmmoType, Gear^.Angle) + LongInt(round(WorldDy + tdy * (24 + i * 2))) - 16, |
770 i) |
775 i) |
771 end |
776 end |
772 end; |
777 end; |
773 |
778 |
774 DrawVisualGears(1); |
779 DrawVisualGears(1); |