From 0cb70fdb866656c4a54288fe153cd2fb3dadebfe Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 26 Jan 2015 19:11:53 -0800 Subject: [PATCH 1/2] Updated add-thought for proper stress change. Apparently, just adding the thought doesn't cut it. Also added thought strength to the whole thing. --- scripts/add-thought.lua | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/scripts/add-thought.lua b/scripts/add-thought.lua index dd6596c86..454782212 100644 --- a/scripts/add-thought.lua +++ b/scripts/add-thought.lua @@ -2,13 +2,14 @@ local utils=require('utils') -local function addEmotionToUnit(emotions,thought,emotion,severity,subthought) +local function addEmotionToUnit(unit,thought,emotion,severity,strength,subthought) + local emotions=unit.status.current_soul.personality.emotions 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, - strength=1, + strength=strength, thought=thought, subthought=subthought, severity=severity, @@ -17,6 +18,10 @@ local function addEmotionToUnit(emotions,thought,emotion,severity,subthought) year=df.global.cur_year, year_tick=df.global.cur_year_tick }) + local divider=df.emotion_type.attrs[emotion].divider + if divider~=0 then + unit.status.current_soul.personality.stress_level=unit.status.current_soul.personality.stress_level+math.ceil(severity/df.emotion_type.attrs[emotion].divider) + end end validArgs = validArgs or utils.invert({ @@ -24,6 +29,7 @@ validArgs = validArgs or utils.invert({ 'thought', 'emotion', 'severity', + 'strength', 'gui' }) @@ -41,19 +47,22 @@ local unit = args.unit and df.unit.find(args.unit) or dfhack.gui.getSelectedUnit if not unit then qerror('A unit must be specified or selected.') end if args.gui then - local script=require('gui.script') - script.start(function() - local tok,thought=script.showListPrompt('emotions','Which thought?',COLOR_WHITE,tablify(df.unit_thought_type),10,true) - if tok then - local eok,emotion=script.showListPrompt('emotions','Which emotion?',COLOR_WHITE,tablify(df.emotion_type),10,true) - if eok then - local sok,severity=script.showInputPrompt('emotions','At what severity?',COLOR_WHITE,'0') - if sok then - addEmotionToUnit(unit.status.current_soul.personality.emotions,thought,emotion,severity,0) - end - end + local script=require('gui.script') + script.start(function() + local tok,thought=script.showListPrompt('emotions','Which thought?',COLOR_WHITE,tablify(df.unit_thought_type),10,true) + if tok then + local eok,emotion=script.showListPrompt('emotions','Which emotion?',COLOR_WHITE,tablify(df.emotion_type),10,true) + if eok then + local sok,severity=script.showInputPrompt('emotions','At what severity?',COLOR_WHITE,'0') + if sok then + local stok,strength=script.showInputPrompt('emotions','At what strength?',COLOR_WHITE,'0') + if stok then + addEmotionToUnit(unit,thought,emotion,severity,strength,0) + end end - end) + end + end + end) else local thought = args.thought or 180 @@ -63,5 +72,7 @@ else local subthought = args.subthought or 0 - addEmotionToUnit(unit.status.current_soul.personality.emotions,thought,emotion,severity,subthought) + local strength = args.strength or 0 + + addEmotionToUnit(unit,thought,emotion,severity,strength,subthought) end From a8c9b8cef898e959c292405159bbc1c24f3e1c2f Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 26 Jan 2015 19:13:24 -0800 Subject: [PATCH 2/2] Update NEWS with add-thought info. --- NEWS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 883e9e6b8..f9588a4d9 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ DFHack Future - + Fixes + Updated add-thought to properly affect stress. + DFHack 0.40.24-r1 Internals CMake shouldn't cache DFHACK_RELEASE anymore. People may need to manually update/delete their CMake cache files to get rid of it.