diff options
| author | jj | 2012-09-17 21:09:28 +0200 |
|---|---|---|
| committer | jj | 2012-09-18 10:17:32 +0200 |
| commit | 711a9bd9b2f6cbba96cc9fe0efa85e3835f94d2a (patch) | |
| tree | 4b438602d53025cd1afda126306019f1830ba305 | |
| parent | 72141a3c9b189dc081ab9302a142edca3c3fa337 (diff) | |
| download | dfhack-711a9bd9b2f6cbba96cc9fe0efa85e3835f94d2a.tar.gz dfhack-711a9bd9b2f6cbba96cc9fe0efa85e3835f94d2a.tar.bz2 dfhack-711a9bd9b2f6cbba96cc9fe0efa85e3835f94d2a.tar.xz | |
add scripts/superdwarf
| -rw-r--r-- | scripts/superdwarf.rb | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/scripts/superdwarf.rb b/scripts/superdwarf.rb new file mode 100644 index 00000000..7f5296b7 --- /dev/null +++ b/scripts/superdwarf.rb @@ -0,0 +1,61 @@ +# give super-dwarven speed to an unit + +$superdwarf_onupdate ||= nil +$superdwarf_ids ||= [] + +case $script_args[0] +when 'add' + if u = df.unit_find + $superdwarf_ids |= [u.id] + + $superdwarf_onupdate ||= df.onupdate_register(1) { + if $superdwarf_ids.empty? + df.onupdate_unregister($superdwarf_onupdate) + $superdwarf_onupdate = nil + else + $superdwarf_ids.each { |id| + if u = df.unit_find(id) and not u.flags1.dead + # faster walk/work + if u.counters.job_counter > 0 + u.counters.job_counter = 0 + end + + # no sleep + if u.counters2.sleepiness_timer > 10000 + u.counters2.sleepiness_timer = 1 + end + + # no break + if b = u.status.misc_traits.find { |t| t.id == :OnBreak } + b.value = 500_000 + end + else + $superdwarf_ids.delete id + end + } + end + } + else + puts "Select a creature using 'v'" + end + +when 'del' + if u = df.unit_find + $superdwarf_ids.delete u.id + else + puts "Select a creature using 'v'" + end + +when 'clear' + $superdwarf_ids.clear + +when 'list' + puts "current superdwarves:", $superdwarf_ids.map { |id| df.unit_find(id).name } + +else + puts "Usage:", + " - superdwarf add: give superspeed to currently selected creature", + " - superdwarf del: remove superspeed to current creature", + " - superdwarf clear: remove all superpowers", + " - superdwarf list: list super-dwarves" +end |
