|
1 -------------------------------- |
|
2 -- HIGHLANDER / HOGS OF WAR |
|
3 -- version 0.3c |
|
4 -- by mikade |
|
5 -------------------------------- |
|
6 |
|
7 ----------- |
|
8 --0.1 |
|
9 ----------- |
|
10 |
|
11 -- concept test |
|
12 |
|
13 ----------- |
|
14 --0.2 |
|
15 ----------- |
|
16 |
|
17 -- remove tardis till Henek fixes his tracker |
|
18 -- change wep crates to health crates |
|
19 -- reset arb turntimevalue |
|
20 -- include randomOrder |
|
21 -- Until fixed .17 methods come out, remove switches and resurrector |
|
22 -- on request, removed kamikaze and piano weapons |
|
23 -- provisional fixing of bugs that can't actually be fixed yet |
|
24 |
|
25 ----------- |
|
26 --0.3 |
|
27 ----------- |
|
28 |
|
29 -- meh, update incorrect display |
|
30 -- may change this in the future to have switches |
|
31 -- but for now people are used to it without, so~ |
|
32 |
|
33 -- mudball is now counted as a utility |
|
34 |
|
35 ----------- |
|
36 --0.3b |
|
37 ----------- |
|
38 |
|
39 -- cleaned up code and got rid of unneccessary vars |
|
40 -- mudball is a weapon again |
|
41 -- landgun is now a utility |
|
42 -- extra time, vampirism utility removed |
|
43 -- hammer wep removed |
|
44 -- all hogs have kamikaze |
|
45 |
|
46 ----------- |
|
47 --0.3c |
|
48 ----------- |
|
49 |
|
50 -- restructured some code |
|
51 -- added napalm (whoops) to list of possible weapons you can get |
|
52 -- hogs no longer recieve airstrike-related weps on border maps |
|
53 |
|
54 loadfile(GetDataPath() .. "Scripts/Locale.lua")() |
|
55 loadfile(GetDataPath() .. "Scripts/Tracker.lua")() |
|
56 |
|
57 local airWeapons = {amAirAttack, amMineStrike, amNapalm, amDrillStrike --[[,amPiano]]} |
|
58 |
|
59 local atkArray = { |
|
60 amBazooka, amBee, amMortar, amDrill, --[[amSnowball,]] |
|
61 amGrenade, amClusterBomb, amMolotov, amWatermelon, amHellishBomb, amGasBomb, |
|
62 amShotgun, amDEagle, amFlamethrower, amSniperRifle, amSineGun, |
|
63 amFirePunch, amWhip, amBaseballBat, --[[amKamikaze,]] amSeduction, --[[amHammer,]] |
|
64 amMine, amDynamite, amCake, amBallgun, amRCPlane, amSMine, |
|
65 amRCPlane, amSMine, |
|
66 amBirdy |
|
67 } |
|
68 |
|
69 local utilArray = { |
|
70 amBlowTorch, amPickHammer, amGirder, amPortalGun, |
|
71 amRope, amParachute, amTeleport, amJetpack, |
|
72 amInvulnerable, amLaserSight, --[[amVampiric,]] |
|
73 amLowGravity, amExtraDamage, --[[amExtraTime,]] |
|
74 amLandGun |
|
75 --[[,amTardis, amResurrector, amSwitch]] |
|
76 } |
|
77 |
|
78 local wepArray = {} |
|
79 |
|
80 local currName |
|
81 local lastName |
|
82 local started = false |
|
83 local switchStage = 0 |
|
84 |
|
85 function StartingSetUp(gear) |
|
86 |
|
87 for i = 1, #wepArray do |
|
88 setGearValue(gear,wepArray[i],0) |
|
89 end |
|
90 |
|
91 setGearValue(gear,amKamikaze,1) |
|
92 |
|
93 i = 1 + GetRandom(#atkArray) |
|
94 setGearValue(gear,atkArray[i],1) |
|
95 |
|
96 i = 1 + GetRandom(#utilArray) |
|
97 setGearValue(gear,utilArray[i],1) |
|
98 |
|
99 SetHealth(gear, 100) |
|
100 |
|
101 end |
|
102 |
|
103 --[[function SaveWeapons(gear) |
|
104 |
|
105 - |
|
106 for i = 1, (#wepArray) do |
|
107 setGearValue(gear, wepArray[i], GetAmmoCount(gear, wepArray[i]) ) |
|
108 --AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) ) |
|
109 end |
|
110 |
|
111 end]] |
|
112 |
|
113 function ConvertValues(gear) |
|
114 |
|
115 for i = 1, #wepArray do |
|
116 AddAmmo(gear, wepArray[i], getGearValue(gear,wepArray[i]) ) |
|
117 end |
|
118 |
|
119 |
|
120 end |
|
121 |
|
122 |
|
123 function TransferWeps(gear) |
|
124 |
|
125 if CurrentHedgehog ~= nil then |
|
126 |
|
127 for i = 1, #wepArray do |
|
128 val = getGearValue(gear,wepArray[i]) |
|
129 if val ~= 0 then |
|
130 setGearValue(CurrentHedgehog, wepArray[i], val) |
|
131 AddAmmo(CurrentHedgehog, wepArray[i], val) |
|
132 end |
|
133 end |
|
134 |
|
135 end |
|
136 |
|
137 end |
|
138 |
|
139 function onGameInit() |
|
140 GameFlags = gfInfAttack + gfRandomOrder |
|
141 HealthCaseProb = 100 |
|
142 end |
|
143 |
|
144 function onGameStart() |
|
145 |
|
146 |
|
147 ShowMission ( |
|
148 loc("HIGHLANDER"), |
|
149 loc("Not all hogs are born equal."), |
|
150 |
|
151 "- " .. loc("Eliminate enemy hogs and take their weapons.") .. "|" .. |
|
152 "- " .. loc("Per-Hog Ammo") .. "|" .. |
|
153 "- " .. loc("Weapons reset.") .. "|" .. |
|
154 "- " .. loc("Unlimited Attacks") .. "|" .. |
|
155 "", 4, 4000 |
|
156 ) |
|
157 |
|
158 if MapHasBorder() == false then |
|
159 for i, w in pairs(airWeapons) do |
|
160 table.insert(atkArray, w) |
|
161 end |
|
162 end |
|
163 |
|
164 for i, w in pairs(atkArray) do |
|
165 table.insert(wepArray, w) |
|
166 end |
|
167 |
|
168 for i, w in pairs(utilArray) do |
|
169 table.insert(wepArray, w) |
|
170 end |
|
171 |
|
172 runOnGears(StartingSetUp) |
|
173 runOnGears(ConvertValues) |
|
174 |
|
175 |
|
176 end |
|
177 |
|
178 function onNewTurn() |
|
179 -- |
|
180 end |
|
181 |
|
182 |
|
183 function onGameTick20() |
|
184 |
|
185 if (CurrentHedgehog ~= nil) then |
|
186 |
|
187 currName = GetHogName(CurrentHedgehog) |
|
188 |
|
189 if (currName ~= lastName) then |
|
190 AddCaption(loc("Switched to ") .. currName .. "!") |
|
191 ConvertValues(CurrentHedgehog) |
|
192 end |
|
193 |
|
194 lastName = currName |
|
195 end |
|
196 |
|
197 end |
|
198 |
|
199 --[[function onHogHide(gear) |
|
200 -- waiting for Henek |
|
201 end |
|
202 |
|
203 function onHogRestore(gear) |
|
204 -- waiting for Henek |
|
205 end]] |
|
206 |
|
207 function onGearAdd(gear) |
|
208 |
|
209 --if GetGearType(gear) == gtSwitcher then |
|
210 -- SaveWeapons(CurrentHedgehog) |
|
211 --end |
|
212 |
|
213 if (GetGearType(gear) == gtHedgehog) then |
|
214 trackGear(gear) |
|
215 end |
|
216 |
|
217 end |
|
218 |
|
219 function onGearDelete(gear) |
|
220 |
|
221 if (GetGearType(gear) == gtHedgehog) then --or (GetGearType(gear) == gtResurrector) then |
|
222 TransferWeps(gear) |
|
223 trackDeletion(gear) |
|
224 end |
|
225 |
|
226 end |
|
227 |
|
228 function onAmmoStoreInit() |
|
229 SetAmmo(amSkip, 9, 0, 0, 0) |
|
230 SetAmmo(amKamikaze, 9, 0, 0, 0) |
|
231 --SetAmmo(amSwitch, 9, 0, 0, 0) -------1 |
|
232 end |
|
233 |