Merge pull request #2899 from myk002/myk_strangemood

get strangemood compiling and running
develop
Myk 2023-02-13 13:12:59 -08:00 committed by GitHub
commit fc7e9885f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 17 deletions

@ -22,18 +22,18 @@ Examples
Options Options
------- -------
``-force`` ``--force``
Ignore normal strange mood preconditions (no recent mood, minimum moodable Ignore normal strange mood preconditions (no recent mood, minimum moodable
population, artifact limit not reached, etc.). population, artifact limit not reached, etc.).
``-unit`` ``--unit``
Make the strange mood strike the selected unit instead of picking one Make the strange mood strike the selected unit instead of picking one
randomly. Unit eligibility is still enforced (unless ``-force`` is also randomly. Unit eligibility is still enforced (unless ``-force`` is also
specified). specified).
``-type <type>`` ``--type <type>``
Force the mood to be of a particular type instead of choosing randomly based Force the mood to be of a particular type instead of choosing randomly based
on happiness. Valid values are "fey", "secretive", "possessed", "fell", and on happiness. Valid values are "fey", "secretive", "possessed", "fell", and
"macabre". "macabre".
``-skill <skill>`` ``--skill <skill>``
Force the mood to use a specific skill instead of choosing the highest Force the mood to use a specific skill instead of choosing the highest
moodable skill. Valid values are "miner", "carpenter", "engraver", "mason", moodable skill. Valid values are "miner", "carpenter", "engraver", "mason",
"tanner", "weaver", "clothier", "weaponsmith", "armorsmith", "metalsmith", "tanner", "weaver", "clothier", "weaponsmith", "armorsmith", "metalsmith",

@ -158,7 +158,7 @@ dfhack_plugin(showmood showmood.cpp)
#dfhack_plugin(stockflow stockflow.cpp LINK_LIBRARIES lua) #dfhack_plugin(stockflow stockflow.cpp LINK_LIBRARIES lua)
#add_subdirectory(stockpiles) #add_subdirectory(stockpiles)
#dfhack_plugin(stocks stocks.cpp) #dfhack_plugin(stocks stocks.cpp)
#dfhack_plugin(strangemood strangemood.cpp) dfhack_plugin(strangemood strangemood.cpp)
dfhack_plugin(tailor tailor.cpp LINK_LIBRARIES lua) dfhack_plugin(tailor tailor.cpp LINK_LIBRARIES lua)
dfhack_plugin(tiletypes tiletypes.cpp Brushes.h LINK_LIBRARIES lua) dfhack_plugin(tiletypes tiletypes.cpp Brushes.h LINK_LIBRARIES lua)
#dfhack_plugin(title-folder title-folder.cpp) #dfhack_plugin(title-folder title-folder.cpp)

@ -80,7 +80,7 @@ df::job_skill getMoodSkill (df::unit *unit)
{ {
case job_skill::MINING: case job_skill::MINING:
case job_skill::CARPENTRY: case job_skill::CARPENTRY:
case job_skill::DETAILSTONE: case job_skill::ENGRAVE_STONE:
case job_skill::MASONRY: case job_skill::MASONRY:
case job_skill::TANNER: case job_skill::TANNER:
case job_skill::WEAVING: case job_skill::WEAVING:
@ -288,15 +288,15 @@ command_result df_strangemood (color_ostream &out, vector <string> & parameters)
{ {
if(parameters[i] == "help" || parameters[i] == "?") if(parameters[i] == "help" || parameters[i] == "?")
return CR_WRONG_USAGE; return CR_WRONG_USAGE;
else if(parameters[i] == "-force") else if(parameters[i] == "--force")
force = true; force = true;
else if(parameters[i] == "-unit") else if(parameters[i] == "--unit")
{ {
unit = DFHack::Gui::getSelectedUnit(out); unit = DFHack::Gui::getSelectedUnit(out);
if (!unit) if (!unit)
return CR_FAILURE; return CR_FAILURE;
} }
else if (parameters[i] == "-type") else if (parameters[i] == "--type")
{ {
i++; i++;
if (i == parameters.size()) if (i == parameters.size())
@ -320,7 +320,7 @@ command_result df_strangemood (color_ostream &out, vector <string> & parameters)
return CR_WRONG_USAGE; return CR_WRONG_USAGE;
} }
} }
else if (parameters[i] == "-skill") else if (parameters[i] == "--skill")
{ {
i++; i++;
if (i == parameters.size()) if (i == parameters.size())
@ -333,7 +333,7 @@ command_result df_strangemood (color_ostream &out, vector <string> & parameters)
else if (parameters[i] == "carpenter") else if (parameters[i] == "carpenter")
skill = job_skill::CARPENTRY; skill = job_skill::CARPENTRY;
else if (parameters[i] == "engraver") else if (parameters[i] == "engraver")
skill = job_skill::DETAILSTONE; skill = job_skill::ENGRAVE_STONE;
else if (parameters[i] == "mason") else if (parameters[i] == "mason")
skill = job_skill::MASONRY; skill = job_skill::MASONRY;
else if (parameters[i] == "tanner") else if (parameters[i] == "tanner")
@ -549,9 +549,9 @@ command_result df_strangemood (color_ostream &out, vector <string> & parameters)
if (type == mood_type::None) if (type == mood_type::None)
{ {
if (soul && ( if (soul && (
(soul->personality.stress_level >= 500000) || (soul->personality.stress >= 500000) ||
(soul->personality.stress_level >= 250000 && !rng.df_trandom(2)) || (soul->personality.stress >= 250000 && !rng.df_trandom(2)) ||
(soul->personality.stress_level >= 100000 && !rng.df_trandom(10)) (soul->personality.stress >= 100000 && !rng.df_trandom(10))
)) ))
{ {
switch (rng.df_trandom(2)) switch (rng.df_trandom(2))
@ -639,7 +639,7 @@ command_result df_strangemood (color_ostream &out, vector <string> & parameters)
case job_skill::CARPENTRY: case job_skill::CARPENTRY:
job->job_type = job_type::StrangeMoodCarpenter; job->job_type = job_type::StrangeMoodCarpenter;
break; break;
case job_skill::DETAILSTONE: case job_skill::ENGRAVE_STONE:
case job_skill::WOODCRAFT: case job_skill::WOODCRAFT:
case job_skill::STONECRAFT: case job_skill::STONECRAFT:
case job_skill::BONECARVE: case job_skill::BONECARVE:
@ -749,7 +749,7 @@ command_result df_strangemood (color_ostream &out, vector <string> & parameters)
switch (skill) switch (skill)
{ {
case job_skill::MINING: case job_skill::MINING:
case job_skill::DETAILSTONE: case job_skill::ENGRAVE_STONE:
case job_skill::MASONRY: case job_skill::MASONRY:
case job_skill::STONECRAFT: case job_skill::STONECRAFT:
case job_skill::MECHANICS: case job_skill::MECHANICS:
@ -1040,7 +1040,7 @@ command_result df_strangemood (color_ostream &out, vector <string> & parameters)
switch (skill) switch (skill)
{ {
case job_skill::MINING: case job_skill::MINING:
case job_skill::DETAILSTONE: case job_skill::ENGRAVE_STONE:
case job_skill::MASONRY: case job_skill::MASONRY:
case job_skill::STONECRAFT: case job_skill::STONECRAFT:
avoid_type = item_type::BLOCKS; avoid_type = item_type::BLOCKS;