slayrace: ignore caged units

develop
jj 2012-06-29 11:51:54 +02:00
parent a72a59b2f9
commit 7971925f7a
1 changed files with 10 additions and 3 deletions

@ -2,8 +2,15 @@
race = $script_args[0] race = $script_args[0]
checkunit = lambda { |u|
u.body.blood_count != 0 and
not u.flags1.dead and
not u.flags1.caged and
not df.map_designation_at(u).hidden
}
all_races = df.world.units.active.map { |u| all_races = df.world.units.active.map { |u|
u.race_tg.creature_id if not u.flags1.dead and not df.map_designation_at(u).hidden u.race_tg.creature_id if checkunit[u]
}.compact.uniq.sort }.compact.uniq.sort
if !race if !race
@ -13,10 +20,10 @@ else
raise 'invalid race' if not raw_race raise 'invalid race' if not raw_race
race_nr = df.world.raws.creatures.all.index { |cr| cr.creature_id == raw_race } race_nr = df.world.raws.creatures.all.index { |cr| cr.creature_id == raw_race }
count = 0
count = 0
df.world.units.active.each { |u| df.world.units.active.each { |u|
if u.race == race_nr and u.body.blood_count != 0 and not u.flags1.dead if u.race == race_nr and checkunit[u]
u.body.blood_count = 0 u.body.blood_count = 0
count += 1 count += 1
end end