This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local function teleport(unit,pos) | |
local unitoccupancy = dfhack.maps.getTileBlock(unit.pos).occupancy[unit.pos.x%16][unit.pos.y%16] | |
unit.pos.x = pos.x | |
unit.pos.y = pos.y | |
unit.pos.z = pos.z | |
if not unit.flags1.on_ground then unitoccupancy.unit = false else unitoccupancy.unit_grounded = false end | |
end | |
local function getArgsTogether(args) | |
local settings={ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--create unit at pointer or given location. Usage e.g. "spawnunit DWARF 0 Dwarfy" | |
--Made by warmist, but edited by Putnam for the dragon ball mod to be used in reactions | |
--note that it's extensible to any autosyndrome reaction to spawn anything due to this; to use in autosyndrome, you want \COMMAND spawnunit CREATURE caste_number name \LOCATION | |
args={...} | |
local rando=dfhack.random.new() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Checks for inventory changes and applies or removes syndromes that items or their materials have. Use "disable" (minus quotes) to disable and "help" to get help. | |
local args = {...} | |
local function printItemSyndromeHelp() | |
print("Arguments:") | |
print(' "help": displays this dialogue.') | |
print(" ") | |
print(' "disable": disables the script.') | |
print(" ") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Allows skills to activate lua scripts. | |
--[[Example usage: | |
...syndrome stuff... | |
[SYN_CLASS:\COMMAND][SYN_CLASS:skillroll][SYN_CLASS:\WORKER_ID] For autoSyndrome/syndromeTrigger. | |
[SYN_CLASS:MELEE_COMBAT] Can use any skill. | |
[SYN_CLASS:20] Rolls d20. Skill will be weighted to this value. | |
[SYN_CLASS:DICEROLL_1] If diceroll ends up as one... | |
[SYN_CLASS:kill][SYN_CLASS:\SKILL_UNIT_ID] Theoretical kill-given-unit-id command; slayrace doesn't do so. | |
[SYN_CLASS:DICEROLL_10] If diceroll is between 1 and 10 (2-10, inclusive)... |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Allows for script-based wishing. | |
function getGenderString(gender) | |
local genderStr | |
if gender==0 then | |
genderStr=string.char(12) | |
elseif gender==1 then | |
genderStr=string.char(11) | |
else | |
return "" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Allows skills to be changed with DFHack. | |
--[[ | |
Args are arranged like this: | |
unitID SKILL level ADD/SUBTRACT/SET | |
SKILL being anything such as DETAILSTONE, level being a number that it will be set to (15 is legendary, 0 is dabbling). | |
Add will add skill levels, subtract will subtract, set will place it at exactly the level you put in. | |
]] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
do | |
local function thoughtIsNegative(thought) | |
return df.unit_thought_type.attrs[thought.type].value:sub(1,1)=='-' and df.unit_thought_type[thought.type]~='LackChairs' | |
end | |
local function write_gamelog_and_announce(msg,color) | |
dfhack.gui.showAnnouncement(msg,color) | |
local log = io.open('gamelog.txt', 'a') | |
log:write(msg.."\n") | |
log:close() | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local utils = require('utils') | |
validArgs = utils.invert({ | |
'all', | |
'citizens', | |
'named', | |
'notStraight', | |
'gayOnly', | |
'biOnly', | |
'straightOnly', |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Adds emotions to creatures. | |
local utils=require('utils') | |
local function addEmotionToUnit(emotions,thought,emotion,subthought,severity) | |
if not (type(emotion)=='number') then emotion=df.emotion_type[emotion] end | |
if not (type(thought)=='number') then thought=df.unit_thought_type[thought] end | |
emotions:insert('#',{new=df.unit_personality.T_emotions, | |
type=emotion, | |
unk2=1, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- lets babies be adopted by couples with no infants. | |
local function getSpouseOrLover(unit) | |
local lover_unit=df.unit.find(unit.relations.lover_id) or df.unit.find(unit.relations.spouse_id) | |
if lover_unit then | |
return lover_unit.hist_figure_id | |
else | |
local hist_fig=df.historical_figure.find(unit.hist_figure_id) | |
for k,v in ipairs(hist_fig.histfig_links) do | |
if df.histfig_hf_link_spousest:is_instance(v) or df.histfig_hf_link_loverst:is_instance(v) then |