-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rework the special node button dictionary (#607)
- Loading branch information
1 parent
3dea009
commit 0eb866a
Showing
11 changed files
with
949 additions
and
295 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
// | ||
// special-affect.cpp | ||
// Common | ||
// | ||
// Created by Celtic Minstrel on 2025-02-20. | ||
// | ||
|
||
#include "special.hpp" | ||
|
||
using namespace node_builder_fields; | ||
|
||
// Note: If adding a new node type below, be sure to adjust the end point here too. | ||
node_category_info_t CAT_AFFECT{eSpecType::SELECT_TARGET, eSpecType::UNSTORE_PC}; | ||
|
||
namespace { | ||
node_properties_t S_SELECT = node_builder_t(eSpecType::SELECT_TARGET) | ||
.msg(); | ||
node_properties_t S_DAMAGE = node_builder_t(eSpecType::DAMAGE) | ||
.msg() | ||
.ex2b(eSpecPicker::DAMAGE_TYPE) | ||
.ex2c(eSpecPicker::SOUND); | ||
node_properties_t S_HEALTH = node_builder_t(eSpecType::AFFECT_HP) | ||
.msg(); | ||
node_properties_t S_MANA = node_builder_t(eSpecType::AFFECT_SP) | ||
.msg(); | ||
node_properties_t S_EXP = node_builder_t(eSpecType::AFFECT_XP) | ||
.msg(); | ||
node_properties_t S_SKILLPT = node_builder_t(eSpecType::AFFECT_SKILL_PTS) | ||
.msg(); | ||
node_properties_t S_KILL = node_builder_t(eSpecType::AFFECT_DEADNESS) | ||
.msg() | ||
.ex1a(STRT_STATUS); | ||
node_properties_t S_STATUS = node_builder_t(eSpecType::AFFECT_STATUS) | ||
.msg() | ||
.ex1c(eSpecPicker::STATUS); | ||
node_properties_t S_TRAIT = node_builder_t(eSpecType::AFFECT_TRAITS) | ||
.msg() | ||
.ex1a(STRT_TRAIT); | ||
node_properties_t S_ACTIONS = node_builder_t(eSpecType::AFFECT_AP) | ||
.msg(); | ||
node_properties_t S_NAME = node_builder_t(eSpecType::AFFECT_NAME) | ||
.msg() | ||
.msg3(eSpecPicker::MSG_SINGLE); | ||
node_properties_t S_LEVEL = node_builder_t(eSpecType::AFFECT_LEVEL) | ||
.msg(); | ||
node_properties_t S_MORALE = node_builder_t(eSpecType::AFFECT_MORALE) | ||
.msg(); | ||
node_properties_t S_CRYSTAL = node_builder_t(eSpecType::AFFECT_SOUL_CRYSTAL) | ||
.msg(); | ||
node_properties_t S_EQUIP = node_builder_t(eSpecType::GIVE_ITEM) | ||
.msg() | ||
.pict(eSpecPicker::NODE) | ||
.ex1a(STRT_ITEM) | ||
.ex1b(STRT_ENCHANT); | ||
node_properties_t S_TARGET = node_builder_t(eSpecType::AFFECT_MONST_TARG) | ||
.msg(); | ||
node_properties_t S_ATTACK = node_builder_t(eSpecType::AFFECT_MONST_ATT) | ||
.msg(); | ||
node_properties_t S_STAT_M = node_builder_t(eSpecType::AFFECT_MONST_STAT) | ||
.msg() | ||
.ex1c(STRT_MONST_STAT); | ||
node_properties_t S_STAT_P = node_builder_t(eSpecType::AFFECT_STAT) | ||
.msg() | ||
.ex1c(STRT_SKILL); | ||
node_properties_t S_MAGE = node_builder_t(eSpecType::AFFECT_MAGE_SPELL) | ||
.msg() | ||
.ex1a(STRT_MAGE); | ||
node_properties_t S_PRIEST = node_builder_t(eSpecType::AFFECT_PRIEST_SPELL) | ||
.msg() | ||
.ex1a(STRT_PRIEST); | ||
node_properties_t S_GOLD = node_builder_t(eSpecType::AFFECT_GOLD) | ||
.msg(); | ||
node_properties_t S_FOOD = node_builder_t(eSpecType::AFFECT_FOOD) | ||
.msg(); | ||
node_properties_t S_ALCHEMY = node_builder_t(eSpecType::AFFECT_ALCHEMY) | ||
.msg() | ||
.ex1a(STRT_ALCHEMY); | ||
node_properties_t S_STATUS_PARTY = node_builder_t(eSpecType::AFFECT_PARTY_STATUS) | ||
.msg() | ||
.ex1c(eSpecPicker::STATUS_PARTY); | ||
node_properties_t S_NEWPC = node_builder_t(eSpecType::CREATE_NEW_PC) | ||
.sdf() | ||
.msg() | ||
.msg3(eSpecPicker::MSG_SINGLE) | ||
.pict(PIC_PC) | ||
.ptyp(eSpecPicker::NODE) | ||
.ex1c(STRT_RACE); | ||
node_properties_t S_STOREPC = node_builder_t(eSpecType::STORE_PC) | ||
.sdf() | ||
.msg(); | ||
node_properties_t S_UNSTOREPC = node_builder_t(eSpecType::UNSTORE_PC) | ||
.sdf() | ||
.msg() | ||
.ex1b(eSpecPicker::NODE); | ||
} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
// | ||
// special-condition.cpp | ||
// Common | ||
// | ||
// Created by Celtic Minstrel on 2025-02-20. | ||
// | ||
|
||
#include "special.hpp" | ||
|
||
using namespace node_builder_fields; | ||
|
||
// Note: If adding a new node type below, be sure to adjust the end point here too. | ||
node_category_info_t CAT_COND{eSpecType::IF_SDF, eSpecType::IF_QUEST}; | ||
|
||
namespace { | ||
node_properties_t S_SDF = node_builder_t(eSpecType::IF_SDF) | ||
.sdf() | ||
.ex1b(eSpecPicker::NODE) | ||
.ex2b(eSpecPicker::NODE); | ||
node_properties_t S_TOWN = node_builder_t(eSpecType::IF_TOWN_NUM) | ||
.ex1a(STRT_TOWN) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_RANDOM = node_builder_t(eSpecType::IF_RANDOM) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_SPECITEM = node_builder_t(eSpecType::IF_HAVE_SPECIAL_ITEM) | ||
.ex1a(STRT_SPEC_ITEM) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_SDFCMP = node_builder_t(eSpecType::IF_SDF_COMPARE) | ||
.sdf() | ||
.sdf(EX1A, EX1B) | ||
.ex2b(eSpecPicker::NODE); | ||
node_properties_t S_TERRAIN = node_builder_t(eSpecType::IF_TER_TYPE) | ||
.loc(EX1A, EX1B) | ||
.ex2a(STRT_TER) | ||
.ex2b(eSpecPicker::NODE); | ||
node_properties_t S_ALIVE = node_builder_t(eSpecType::IF_ALIVE) | ||
.ex1a(STRT_STATUS) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_GOLD = node_builder_t(eSpecType::IF_HAS_GOLD) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_FOOD = node_builder_t(eSpecType::IF_HAS_FOOD) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_ITEM_THERE = node_builder_t(eSpecType::IF_ITEM_CLASS_ON_SPACE) | ||
.loc(EX1A, EX1B) | ||
.ex2b(eSpecPicker::NODE); | ||
node_properties_t S_ITEM_OWNED = node_builder_t(eSpecType::IF_HAVE_ITEM_CLASS) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_ITEM_EQUIP = node_builder_t(eSpecType::IF_EQUIP_ITEM_CLASS) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_MAGE = node_builder_t(eSpecType::IF_MAGE_SPELL) | ||
.ex1a(STRT_MAGE) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_PRIEST = node_builder_t(eSpecType::IF_PRIEST_SPELL) | ||
.ex1a(STRT_PRIEST) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_ALCHEMY = node_builder_t(eSpecType::IF_RECIPE) | ||
.ex1a(STRT_ALCHEMY) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_STATUS = node_builder_t(eSpecType::IF_STATUS) | ||
.ex1a(eSpecPicker::STATUS) | ||
.ex1b(eSpecPicker::NODE) | ||
.ex2b(STRT_ACCUM) | ||
.ex2c(STRT_CMP); | ||
node_properties_t S_LOOK = node_builder_t(eSpecType::IF_LOOKING) | ||
.ex1c(eSpecPicker::NODE); | ||
node_properties_t S_DAY = node_builder_t(eSpecType::IF_DAY_REACHED) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_FIELDS = node_builder_t(eSpecType::IF_FIELDS) | ||
.rect() | ||
.msg1(eSpecPicker::FIELD) | ||
.msg2(eSpecPicker::NODE); | ||
node_properties_t S_PARTY_SIZE = node_builder_t(eSpecType::IF_PARTY_SIZE) | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_EVENT = node_builder_t(eSpecType::IF_EVENT_OCCURRED) | ||
.ex2b(eSpecPicker::NODE); | ||
node_properties_t S_RACE = node_builder_t(eSpecType::IF_SPECIES) | ||
.ex1a(STRT_RACE) | ||
.ex1b(eSpecPicker::NODE) | ||
.ex2c(STRT_CMP); | ||
node_properties_t S_TRAIT = node_builder_t(eSpecType::IF_TRAIT) | ||
.ex1a(STRT_TRAIT) | ||
.ex1b(eSpecPicker::NODE) | ||
.ex2c(STRT_CMP); | ||
node_properties_t S_STAT = node_builder_t(eSpecType::IF_STATISTIC) | ||
.ex1b(eSpecPicker::NODE) | ||
.ex2a(+STRT_SKILL) | ||
.ex2b(STRT_ACCUM); | ||
node_properties_t S_TEXT = node_builder_t(eSpecType::IF_TEXT_RESPONSE) | ||
.msg1(+eSpecPicker::MSG_SINGLE) | ||
.ex1a(+eSpecPicker::MSG_SINGLE) | ||
.ex1b(eSpecPicker::NODE) | ||
.ex2a(+eSpecPicker::MSG_SINGLE) | ||
.ex2b(eSpecPicker::NODE); | ||
node_properties_t S_SDFEQ = node_builder_t(eSpecType::IF_SDF_EQ) | ||
.sdf() | ||
.ex1b(eSpecPicker::NODE); | ||
node_properties_t S_CONTEXT = node_builder_t(eSpecType::IF_CONTEXT) | ||
.ex1a(STRT_CONTEXT) | ||
.ex1c(eSpecPicker::NODE); | ||
node_properties_t S_NUM = node_builder_t(eSpecType::IF_NUM_RESPONSE) | ||
.msg1(+eSpecPicker::MSG_SINGLE) | ||
.ex1b(STRT_CMP) | ||
.ex1c(eSpecPicker::NODE) | ||
.ex2b(STRT_CMP) | ||
.ex2c(eSpecPicker::NODE); | ||
node_properties_t S_BOAT = node_builder_t(eSpecType::IF_IN_BOAT) | ||
.ex1c(eSpecPicker::NODE); | ||
node_properties_t S_HORSE = node_builder_t(eSpecType::IF_ON_HORSE) | ||
.ex1c(eSpecPicker::NODE); | ||
node_properties_t S_QUEST = node_builder_t(eSpecType::IF_QUEST) | ||
.ex1a(STRT_QUEST) | ||
.ex1b(STRT_QUEST_STATUS) | ||
.ex1c(eSpecPicker::NODE); | ||
} |
Oops, something went wrong.