New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added bodyswap.lua #55
Conversation
A revived version of the long defunct "adv-bodyswap" with added functionality. This script allows the player to swap their control over to any unit present on the map in adventure mode only. Targets are specified either via their unit id or through UI selection prior to running the script. Unlike previous iterations, units lacking nemesis or historical figure data (such as wild animals) are valid and safe targets, as the script creates this data when it is missing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are the functions taken from modtools/create-unit directly or modified slightly? If it's the former, you should probably use reqscript('modtools/create-unit') instead of copying them. Otherwise, maybe adding library functions would be good to avoid large chunks of repeated code.
| bodyswap | ||
| ======== | ||
| This script allows the player to gain control over a new unit in adventurer mode | ||
| whilst simultaneously loosing control over their current character. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
losing
| }) | ||
| local args = utils.processArgs({...}, validArgs) | ||
|
|
||
| local usage = [====[ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think two versions of the documentation is ideal. Sphinx should pick up anything between [====[ and ]====], even if it's a string instead of a comment (see repeat, spawnunit, and lots of modtools scripts for examples).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't recall carrying out any major alterations on the create-unit functions, so using reqscript and supplementing where necessary is indeed a better idea.
I was not aware of the documentation issue; thank you for clarifying it. Is either of the two versions preferred? If not, I'll remove the first one.
Edit: submitted PR #56 to allow calling of reqscript('modtools/create-unit').createNemesis() .
bodyswap.lua
Outdated
| if activeUnits[0] == oldUnit then | ||
| oldUnitIndex = 0 | ||
| else | ||
| for i,u in pairs(activeUnits) do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you could probably use utils.binsearch_in_vector(activeUnits, oldUnitIndex, field) here and elsewhere (but haven't tried). It would be better than repeating this, anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The API mentions a utils.binsearch(vector,key,field,cmpfun,min,max) which I'm assuming is what you're referring to. I'm not sure I understand how to use it in this context.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, binsearch_in_vector is the C++ name. utils.binsearch(activeUnits, oldUnit.id, 'id') (yeah, I screwed up my earlier example) returns unit, true, index if it was found. select(3, utils.binsearch...) would give you the index if the unit was found, but the index of another unit otherwise, so something like this might be better:
_, found, oldUnitIndex = utils.binsearch(activeUnits, oldUnit.id, 'id')
if not found then qerror('old unit not found') end
-- find newUnitIndex, swap, etc.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the example!
Unless I'm messing something up, it seems that utils.binsearch isn't working reliably; it sometimes returns failure values (found == false, etc) consistently for certain cases and I have no idea why.
I'm running this in-game (in a well-populated town in adventure mode) for testing purposes. It should help illustrate my point:
utils = require 'utils'
local activeUnits = df.global.world.units.active
for _,unit in ipairs(activeUnits) do
print(utils.binsearch(activeUnits,unit.id,'id'))
endThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, is it not sorted by id? I thought that was how df.unit.find() worked... can you try also checking df.unit.find(unit.id)==unit? Not sure if I have an adventure save handy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't been able to reproduce this in adventure mode with ~100 active units
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utils = require 'utils'
local activeUnits = df.global.world.units.active
for _,unit in ipairs(activeUnits) do
print(utils.binsearch(activeUnits,unit.id,'id'))
print(df.unit.find(unit.id) == unit)
print('---')
endIndicates that df.unit.find(unit.id) is working fine where utils.binsearch is not.
Just creating a new adventure save and running this at the spawn town would probably be sufficient, as it's what I'm doing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's what I did too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, I missed the previous reply. That's really quite strange. Mind you, failed cases have been a minority thus far; did you look through the entire output?
Edit: modified for better clarity:
utils = require 'utils'
local activeUnits = df.global.world.units.active
for i,unit in ipairs(activeUnits) do
local _,found,unitIndex = utils.binsearch(activeUnits,unit.id,'id')
if not found then print('Not found! '..i) end
endThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The second column was all trues. I'll see if I can find a bigger city or something.
…t' call also removed the double documentation and added module accessibility stuff
|
I don't understand Travis. Any indications as to what the issue is? |
\r\n needs to be replaced with \n. Done on my end. |
Squashed commit of the following: commit aed35fd Author: lethosor <lethosor@gmail.com> Date: Mon Jun 25 15:31:40 2018 -0400 Add 0.44.11 to devel/save-version commit 56a209a Author: lethosor <lethosor@gmail.com> Date: Thu Jun 21 10:59:11 2018 -0400 unit_flags1.dead -> inactive Follow-up for DFHack/df-structures#247 commit 72e150e Author: lethosor <lethosor@gmail.com> Date: Thu Jun 21 00:45:13 2018 -0400 Adjust indentation/whitespace from DFHack#62 commit b101452 Merge: e580b16 506efce Author: lethosor <lethosor@gmail.com> Date: Thu Jun 21 00:41:44 2018 -0400 Merge remote-tracking branch 'PatrikLundell/dead_misuse' commit e580b16 Merge: ee82d10 4de3d7e Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 21:46:53 2018 -0400 Merge pull request DFHack#58 from AtomicChicken/bodyswap bodyswap: minor adjustments commit ee82d10 Merge: 54a0e03 123be9a Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 21:46:12 2018 -0400 Merge pull request DFHack#57 from grubsteak/patch-1 stamper.lua - gui designation manipulator commit 54a0e03 Merge: 20bee6f 7b90330 Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 21:45:37 2018 -0400 Merge pull request DFHack#61 from PatrikLundell/deathcause Deathcause commit 20bee6f Merge: f722aee 469817b Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 21:44:59 2018 -0400 Merge pull request DFHack#63 from brndd/add-recipe add-recipe commit f722aee Merge: 7099794 028cead Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 17:51:03 2018 -0400 Merge pull request DFHack#59 from AtomicChicken/create-unit create-unit: added 'quantity' argument and random caste selection commit 028cead Merge: 89ddb81 7099794 Author: Ben Lubar <ben.lubar+github@gmail.com> Date: Mon Jun 18 15:50:48 2018 -0500 Merge branch 'master' into create-unit commit 7099794 Merge: b065ce4 d0f8384 Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 16:07:55 2018 -0400 Merge pull request DFHack#64 from brndd/item-descriptions item-descriptions editor's pass commit 506efce Merge: 17a06a9 b9ffb9c Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Mon Jun 18 20:03:32 2018 +0200 Merge branch 'dead_misuse' of https://github.com/PatrikLundell/scripts into dead_misuse commit 17a06a9 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Mon Jun 18 20:00:49 2018 +0200 reversed condition fixed commit b9ffb9c Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 13:50:33 2018 -0400 export-dt-ini: consistent case commit 3acd169 Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon Jun 18 13:49:51 2018 -0400 isActive -> dfhack.units.isActive commit 065138e Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Thu Jun 14 21:50:25 2018 +0200 flags -> functions. Hystersis for removal commit daccfaa Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Thu Jun 14 21:19:24 2018 +0200 Fixed a number of checks commit ecfb94a Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Thu Jun 14 19:31:21 2018 +0200 flag check -> function commit 401beac Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Thu Jun 14 19:30:43 2018 +0200 flag check -> function commit 54de259 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Thu Jun 14 19:30:11 2018 +0200 resolved conflict commit bef0e25 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Thu Jun 14 19:29:12 2018 +0200 flag check -> function commit b065ce4 Author: lethosor <lethosor@gmail.com> Date: Tue Jun 12 12:46:31 2018 -0400 autounsuspend: skip planned buildings Fixes DFHack/dfhack#1305 commit 982f04d Author: Ben Lubar <ben.lubar@gmail.com> Date: Mon Jun 11 18:32:56 2018 -0500 Fix more luacheck stuff. Fix fixnaked being broken with the thought/emotion changes. commit 0d12bd6 Author: Ben Lubar <ben.lubar@gmail.com> Date: Sun Jun 10 10:04:50 2018 -0500 Fix most of the remaining luacheck issues in scripts. Scripts still to do: - gui/*.lua - exportlegends.lua - fixnaked.lua commit d0f8384 Author: brndd <burneddi@gmail.com> Date: Sun Jun 10 02:50:27 2018 +0300 luacheck fix commit 1d1c4fb Author: Ben Lubar <ben.lubar@gmail.com> Date: Sat Jun 9 06:43:58 2018 -0500 More fixes for df-luacheck. Mostly annotations, but there are a few typos fixed as well. commit 36b9fe2 Author: brndd <burneddi@gmail.com> Date: Thu Jun 7 23:37:51 2018 +0300 luacheck fix commit 870e6f4 Author: brndd <burneddi@gmail.com> Date: Thu Jun 7 22:40:16 2018 +0300 minor typo fix commit d04327a Author: brndd <burneddi@gmail.com> Date: Thu Jun 7 22:33:32 2018 +0300 further revisions to item descriptions commit 1e73e57 Author: brndd <burneddi@gmail.com> Date: Thu Jun 7 21:21:30 2018 +0300 removed superfluous variable commit 0d37a50 Author: brndd <burneddi@gmail.com> Date: Thu Jun 7 21:17:27 2018 +0300 item-descriptions editor's pass Editor's pass on item-descriptions, fixing some grammar errors and improving some of the descriptions. commit 469817b Author: brndd <burneddi@gmail.com> Date: Thu Jun 7 21:11:31 2018 +0300 add-recipe Adding a new script, add-recipe. This script adds crafting recipes to the player's civilization. It is useful when eg. the civ doesn't know how to craft high boots. commit 69500d4 Author: Ben Lubar <ben.lubar@gmail.com> Date: Thu Jun 7 08:10:00 2018 -0500 More luacheck-related fixes. commit f8910a8 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Wed Jun 6 15:01:03 2018 +0200 flags1.dead->flags2.killed commit 63d50de Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Wed Jun 6 15:00:22 2018 +0200 flags1.dead->flags2.killed commit 091c062 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Wed Jun 6 14:59:46 2018 +0200 flags1.dead->flags2.killed commit 4f5ad27 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Wed Jun 6 14:59:10 2018 +0200 flags1.dead->flags2.killed commit b10a928 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Wed Jun 6 14:58:35 2018 +0200 Updated comment messages commit 5d0b5b1 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Wed Jun 6 14:57:34 2018 +0200 flags1.dead->flags2.killed commit 7b90330 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Tue Jun 5 16:09:05 2018 +0200 Identified slaughter. Stopped item override commit 82e6ffa Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Tue Jun 5 11:20:10 2018 +0200 Factored out two common lines commit 09f9656 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Tue Jun 5 11:15:29 2018 +0200 Added race to live unit commit 9de95f8 Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Tue Jun 5 11:02:01 2018 +0200 Detecting live units not being dead commit 75a94ee Author: PatrikLundell <j.patrik.r.lundell@gmail.com> Date: Tue Jun 5 10:44:14 2018 +0200 dead/inactive flag -> killed commit 6b78bb5 Author: Ben Lubar <ben.lubar@gmail.com> Date: Mon Jun 4 22:09:28 2018 -0500 Fix behavioral changes introduced in previous commit. commit 5a892c3 Author: Ben Lubar <ben.lubar@gmail.com> Date: Mon Jun 4 21:23:28 2018 -0500 Fix bugs found while working on luacheck commit 7f18d2c Author: Ben Lubar <ben.lubar@gmail.com> Date: Sun May 27 10:40:13 2018 -0500 [ban-cooking] Update for DFHack/df-structures@238b305. Remove undocumented debugging commands. Fixes DFHack/dfhack#1293. commit 89ddb81 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Thu May 24 10:13:26 2018 +0200 modified getRandomCasteId() to avoid having to locate creature_raw again commit 9fbd247 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Thu May 24 00:17:40 2018 +0200 create-unit: added 'quantity' and random caste selection - added 'quantity' argument for spawning several units simultaneously - implemented random caste selection for use upon omission of 'caste' argument - changed several instances of 'error' to 'qerror' commit 5bd8f0d Author: lethosor <lethosor@gmail.com> Date: Tue May 22 10:55:10 2018 -0400 Fix "validArgs = validArgs or ..." antipattern This prevented any edits to scripts from changing the allowed arguments without removing validArgs from the script's environment somehow or restarting DF. This was pointless - script behavior can easily be modified to use new arguments, potentially leading to confusion when those arguments were rejected. commit 7b30d55 Author: lethosor <lethosor@gmail.com> Date: Tue May 22 09:58:24 2018 -0400 remove-stress: fix -all for soul-less units, indentation, module support commit 27ea437 Author: lethosor <lethosor@gmail.com> Date: Mon May 21 17:45:47 2018 -0400 fix/retrieve-units: also add units back to active list to counteract fix/dead-units commit 123be9a Author: grubsteak <joel.herzog@att.net> Date: Sun May 20 12:21:58 2018 -0500 removed obnoxious comment sorry commit 5ef5c7f Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 21:16:29 2018 -0500 fixed minor indenting error commit bef9b5c Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 15:00:39 2018 -0500 fix title travis is a bastard commit 2ef4b23 Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 14:59:25 2018 -0500 move copy.lua to gui/stamper.lua commit a64b5a9 Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 14:58:28 2018 -0500 renaming to stamper.lua commit b67ea7d Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 11:37:00 2018 -0500 fixed bug commit 4de3d7e Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sat May 19 09:47:15 2018 +0200 bodyswap: minor adjustments slightly modified documentation, added error message and relocated a few lines commit 157d224 Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 00:40:22 2018 -0500 make travis happy commit 07566b1 Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 00:31:56 2018 -0500 fixed title code now to for that lint.... commit 34f68d0 Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 00:22:20 2018 -0500 Update copy.lua commit ddea05b Author: grubsteak <joel.herzog@att.net> Date: Sat May 19 00:14:34 2018 -0500 Create copy.lua commit 0b6e4a5 Author: lethosor <lethosor@gmail.com> Date: Fri May 18 12:43:37 2018 -0400 bodyswap: Use unix line endings Ref DFHack#55 commit bce5c0b Merge: d747dda 9a92e1d Author: lethosor <lethosor@gmail.com> Date: Fri May 18 12:41:10 2018 -0400 Merge remote-tracking branches 'AtomicChicken/bodyswap' and 'AtomicChicken/create-unit' commit d747dda Author: AtomicChicken <titanium.chicken@gmail.com> Date: Thu May 17 20:58:04 2018 +0200 removed whitespace commit 10182a3 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Thu May 17 20:52:21 2018 +0200 replaced nemesis/histfig creation functions with 'modtools/create-unit' call also removed the double documentation and added module accessibility stuff commit 9a92e1d Author: AtomicChicken <titanium.chicken@gmail.com> Date: Thu May 17 10:12:33 2018 +0200 minor alterations to allow use of createNemesis() by external scripts commit 984bb31 Merge: 9f2231b fc7a37d Author: AtomicChicken <titanium.chicken@gmail.com> Date: Thu May 17 09:53:46 2018 +0200 Merge pull request DFHack#1 from DFHack/master update fork commit fc7a37d Author: lethosor <lethosor@gmail.com> Date: Wed May 16 22:08:23 2018 -0400 view-item-info: stop appending newlines to descriptions more than once Fixes DFHack/dfhack#1273 commit 5e8f859 Author: lethosor <lethosor@gmail.com> Date: Wed May 16 19:37:32 2018 -0400 Remove explicit keybindings from docs, plus misc docs cleanup Closes DFHack/dfhack#988 commit c7054eb Author: AtomicChicken <titanium.chicken@gmail.com> Date: Wed May 16 19:32:46 2018 +0200 Added bodyswap.lua A revived version of the long defunct "adv-bodyswap" with added functionality. This script allows the player to swap their control over to any unit present on the map in adventure mode only. Targets are specified either via their unit id or through UI selection prior to running the script. Unlike previous iterations, units lacking nemesis or historical figure data (such as wild animals) are valid and safe targets, as the script creates this data when it is missing. commit ed1b046 Author: lethosor <lethosor@gmail.com> Date: Sat May 12 16:58:32 2018 -0400 room-list: support getSelectedBuilding() commit 8dfd2ec Author: lethosor <lethosor@gmail.com> Date: Sat May 12 16:58:23 2018 -0400 room-list: use getRoomDescription() commit f76e417 Merge: 9504fc0 9a44403 Author: lethosor <lethosor@gmail.com> Date: Fri May 11 18:54:45 2018 -0400 Merge remote-tracking branch 'AtomicChicken/create-unit' commit 9504fc0 Author: lethosor <lethosor@gmail.com> Date: Fri May 11 18:44:59 2018 -0400 save-version: add current DF version, change 0 to "not saved" commit 07e75ff Merge: 2443cef 0d9d081 Author: lethosor <lethosor@gmail.com> Date: Fri May 11 15:25:50 2018 -0400 Merge remote-tracking branch 'Bumber64/patch-1' commit 0d9d081 Author: Ryan Williams <Bumber64@users.noreply.github.com> Date: Fri May 11 12:13:46 2018 -0700 Update exterminate.rb documentation commit 2443cef Merge: 5de338b 60171e5 Author: Lethosor <lethosor@users.noreply.github.com> Date: Fri May 11 12:06:35 2018 -0400 Merge pull request DFHack#53 from cvuchener/dt-tool-offsets export-dt-ini: add tool offsets commit 5de338b Merge: eddfb8e ef0860a Author: Lethosor <lethosor@users.noreply.github.com> Date: Fri May 11 12:05:16 2018 -0400 Merge pull request DFHack#51 from AtomicChicken/full-heal full-heal: several fixes commit eddfb8e Author: lethosor <lethosor@gmail.com> Date: Fri May 11 10:34:22 2018 -0400 Add tweak information to install-info commit 3136553 Author: lethosor <lethosor@gmail.com> Date: Wed May 9 09:52:49 2018 -0400 Add devel/find-primitive commit 60171e5 Author: Clément Vuchener <clement.vuchener@gmail.com> Date: Wed May 9 10:47:04 2018 +0200 export-dt-ini: add tool offsets commit 9a44403 Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon May 7 13:32:56 2018 -0400 Fix whitespace commit 3113f73 Merge: f81ba57 a1cd002 Author: Lethosor <lethosor@users.noreply.github.com> Date: Mon May 7 13:28:38 2018 -0400 Merge branch 'master' into create-unit commit ef0860a Author: AtomicChicken <titanium.chicken@gmail.com> Date: Mon May 7 16:41:35 2018 +0200 reset some more stuff in unit.enemy commit f81ba57 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Mon May 7 15:56:14 2018 +0200 bug fixes and update - creatures of the appropriate age are now spawned as babies or children where applicable - fix: civ_id is now properly assigned to historical_figure, resolving several hostility issues (spawned pets are no longer attacked by fortress military!) - fix: unnamed creatures are no longer spawned with a string of numbers as a first name commit a1cd002 Author: lethosor <lethosor@gmail.com> Date: Mon May 7 00:13:08 2018 -0400 devel/save-version: add 0.44.10 commit 9b4f443 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sun May 6 16:15:01 2018 +0200 fixed typo commit fc5dc12 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sun May 6 16:12:40 2018 +0200 cleared health flags to deal with issues that were cropping up with the healthcare system, such as healed units being operated upon commit 9c11f53 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sun May 6 15:54:20 2018 +0200 cancel active healthcare jobs so as to prevent the buggy behaviour that is produced by healing a unit whilst it is the target of medical jobs commit b13cd4d Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sun May 6 13:33:27 2018 +0200 re-added wake from rest On second thought, this can be useful as it prevents units from unnecessarily walking to a hospital (rest job position) after being healed. commit 61a8f17 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sat May 5 22:36:37 2018 +0200 removed wake from rest unnecessary as resting units awake in a matter of ticks upon being healed commit f4aff0a Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sat May 5 22:15:16 2018 +0200 fix melting body parts, clear infection, remove historical wounds commit 1a78d1e Author: lethosor <lethosor@gmail.com> Date: Sat May 5 15:53:11 2018 -0400 gui/autogems: Add initial comment commit 6295e5a Merge: 164d9bd 65b102e Author: lethosor <lethosor@gmail.com> Date: Sat May 5 12:53:14 2018 -0400 Merge branch 'gui-autogems' commit 65b102e Author: lethosor <lethosor@gmail.com> Date: Sat May 5 12:45:22 2018 -0400 gui/autogems: save/load from autogems.json commit a9fb7aa Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sat May 5 16:02:42 2018 +0200 removed the CleanSelf job assignment because it causes errors and is entirely unnecessary; the system will generate its own CleanSelf jobs if this is required commit 7b208ce Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sat May 5 15:34:16 2018 +0200 added missing flags commit b53b361 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sat May 5 13:19:45 2018 +0200 added missing counters commit 4687275 Author: AtomicChicken <titanium.chicken@gmail.com> Date: Sat May 5 12:44:17 2018 +0200 reset limbs_fly_count commit 7d4bf81 Author: lethosor <lethosor@gmail.com> Date: Fri May 4 23:32:30 2018 -0400 gui/autogems: Add documentation commit 4e113b9 Author: lethosor <lethosor@gmail.com> Date: Sat Jul 1 16:52:16 2017 -0400 Restrict width of gem list commit a6d12c6 Author: lethosor <lethosor@gmail.com> Date: Tue Jun 27 10:16:05 2017 -0400 Add "on map" filter commit d36edea Author: lethosor <lethosor@gmail.com> Date: Tue Jun 27 09:55:37 2017 -0400 Add screen title commit 93eec26 Author: lethosor <lethosor@gmail.com> Date: Mon Jun 26 21:44:50 2017 -0400 Add initial gui/autogems front-end
A revived version of the long defunct "adv-bodyswap" with some added functionality.
This script allows the player to swap their control over to any unit present on the map in adventure mode. Targets are specified either via their unit id or through UI selection prior to running the script (as detailed in the script usage documentation). Unlike previous iterations, units lacking nemesis or historical figure data (such as wild animals) are valid and safe targets, as the script creates this data when it is missing using functions from modtools/create-unit.