equal
deleted
inserted
replaced
24 HedgewarsScriptLoad("/Scripts/Locale.lua") |
24 HedgewarsScriptLoad("/Scripts/Locale.lua") |
25 HedgewarsScriptLoad("/Scripts/Tracker.lua") |
25 HedgewarsScriptLoad("/Scripts/Tracker.lua") |
26 |
26 |
27 local weapons = {} |
27 local weapons = {} |
28 local weapons_values = {} |
28 local weapons_values = {} |
|
29 local weapons_count = 0 |
29 local airweapons = {} |
30 local airweapons = {} |
30 local airweapons_values = {} |
31 local airweapons_values = {} |
31 local utilities = {} |
32 local utilities = {} |
32 local utilities_values = {} |
33 local utilities_values = {} |
33 |
34 |
55 ]] |
56 ]] |
56 |
57 |
57 local n = 3 --"points" to be allocated on weapons |
58 local n = 3 --"points" to be allocated on weapons |
58 |
59 |
59 --pick random weapon and subtract cost |
60 --pick random weapon and subtract cost |
60 local r = GetRandom(table.maxn(weapons_values)) + 1 |
61 local r = GetRandom(weapons_count) + 1 |
61 local picked_items = {} |
62 local picked_items = {} |
62 table.insert(picked_items, weapons[r]) |
63 table.insert(picked_items, weapons[r]) |
63 n = n - weapons_values[r] |
64 n = n - weapons_values[r] |
64 |
65 |
65 |
66 |
66 --choose any weapons or utilities to use up remaining n |
67 --choose any weapons or utilities to use up remaining n |
67 |
68 |
68 while n > 0 do |
69 while n > 0 do |
69 local items = {} |
70 local items = {} |
70 local items_values = {} |
71 local items_values = {} |
|
72 local items_count = 0 |
71 |
73 |
72 for i, w in pairs(weapons_values) do |
74 for i, w in pairs(weapons_values) do |
73 local used = false |
75 local used = false |
74 if w <= n then |
76 if w <= n then |
75 --check that this weapon hasn't been given already |
77 --check that this weapon hasn't been given already |
79 end |
81 end |
80 end |
82 end |
81 if not used then |
83 if not used then |
82 table.insert(items_values, w) |
84 table.insert(items_values, w) |
83 table.insert(items, weapons[i]) |
85 table.insert(items, weapons[i]) |
|
86 items_count = items_count + 1 |
84 end |
87 end |
85 end |
88 end |
86 end |
89 end |
87 |
90 |
88 for i, w in pairs(utilities_values) do |
91 for i, w in pairs(utilities_values) do |
95 end |
98 end |
96 end |
99 end |
97 if not used then |
100 if not used then |
98 table.insert(items_values, w) |
101 table.insert(items_values, w) |
99 table.insert(items, utilities[i]) |
102 table.insert(items, utilities[i]) |
100 end |
103 items_count = items_count + 1 |
101 end |
104 end |
102 end |
105 end |
103 |
106 end |
104 local r = GetRandom(table.maxn(items_values)) + 1 |
107 |
105 table.insert(picked_items, items[r]) |
108 if items_count > 0 then |
106 n = n - items_values[r] |
109 local r = GetRandom(items_count) + 1 |
|
110 table.insert(picked_items, items[r]) |
|
111 n = n - items_values[r] |
|
112 else |
|
113 break |
|
114 end |
107 end |
115 end |
108 |
116 |
109 return picked_items |
117 return picked_items |
110 end |
118 end |
111 |
119 |
212 table.insert(utilities, a) |
220 table.insert(utilities, a) |
213 table.insert(utilities, cost) |
221 table.insert(utilities, cost) |
214 else |
222 else |
215 table.insert(weapons, a) |
223 table.insert(weapons, a) |
216 table.insert(weapons_values, cost) |
224 table.insert(weapons_values, cost) |
|
225 weapons_count = weapons_count + 1 |
217 end |
226 end |
218 end |
227 end |
219 else |
228 else |
220 prob = 0 |
229 prob = 0 |
221 end |
230 end |