Updated add-thought for proper stress change.

Apparently, just adding the thought doesn't cut it.

Also added thought strength to the whole thing.
develop
Putnam3145 2015-01-26 19:11:53 -08:00
parent 08110312ff
commit 0cb70fdb86
1 changed files with 26 additions and 15 deletions

@ -2,13 +2,14 @@
local utils=require('utils') 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(emotion)=='number') then emotion=df.emotion_type[emotion] end
if not (type(thought)=='number') then thought=df.unit_thought_type[thought] end if not (type(thought)=='number') then thought=df.unit_thought_type[thought] end
emotions:insert('#',{new=df.unit_personality.T_emotions, emotions:insert('#',{new=df.unit_personality.T_emotions,
type=emotion, type=emotion,
unk2=1, unk2=1,
strength=1, strength=strength,
thought=thought, thought=thought,
subthought=subthought, subthought=subthought,
severity=severity, severity=severity,
@ -17,6 +18,10 @@ local function addEmotionToUnit(emotions,thought,emotion,severity,subthought)
year=df.global.cur_year, year=df.global.cur_year,
year_tick=df.global.cur_year_tick 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 end
validArgs = validArgs or utils.invert({ validArgs = validArgs or utils.invert({
@ -24,6 +29,7 @@ validArgs = validArgs or utils.invert({
'thought', 'thought',
'emotion', 'emotion',
'severity', 'severity',
'strength',
'gui' 'gui'
}) })
@ -49,7 +55,10 @@ if args.gui then
if eok then if eok then
local sok,severity=script.showInputPrompt('emotions','At what severity?',COLOR_WHITE,'0') local sok,severity=script.showInputPrompt('emotions','At what severity?',COLOR_WHITE,'0')
if sok then if sok then
addEmotionToUnit(unit.status.current_soul.personality.emotions,thought,emotion,severity,0) 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 end
@ -63,5 +72,7 @@ else
local subthought = args.subthought or 0 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 end