Skip to content

Commit 67ae374

Browse files
[Xedra Evolved] Add second strange event--spotting a brownie in your faction camp (#82486)
1 parent be92113 commit 67ae374

File tree

5 files changed

+217
-0
lines changed

5 files changed

+217
-0
lines changed

data/mods/Xedra_Evolved/eocs/eoc_strange_events.json

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,59 @@
6868
{ "u_message": "snippet_drained_by_lilit", "snippet": true, "type": "bad" },
6969
{ "math": [ "u_lilin_ruach_drained_recently = 1" ] }
7070
]
71+
},
72+
{
73+
"type": "effect_on_condition",
74+
"id": "EOC_XE_BROWNIE_IN_YOUR_FACTION_BASE",
75+
"recurrence": [ "5 days", "12 days" ],
76+
"condition": {
77+
"and": [
78+
"u_is_avatar",
79+
{ "u_at_om_location": "FACTION_CAMP_ANY" },
80+
{ "x_in_y_chance": { "x": 1, "y": 25 } },
81+
{ "not": { "u_has_effect": "sleep" } },
82+
{ "not": { "u_has_trait": "FAE_ENMITY" } },
83+
{ "not": { "compare_string": [ "yes", { "u_val": "xe_brownie_in_faction_event_has_run" } ] } }
84+
]
85+
},
86+
"deactivate_condition": { "or": [ { "not": "u_is_avatar" }, { "u_has_trait": "FAE_ENMITY" } ] },
87+
"effect": [
88+
{
89+
"u_location_variable": { "context_val": "brownie_spawn_location" },
90+
"passable_only": true,
91+
"min_radius": 5,
92+
"max_radius": 10,
93+
"true_eocs": [
94+
{
95+
"id": "EOC_XE_BROWNIE_IN_YOUR_FACTION_BASE_SUCCESS",
96+
"condition": { "not": { "map_is_outside": { "context_val": "brownie_spawn_location" } } },
97+
"effect": [
98+
{
99+
"u_spawn_monster": "mon_xe_strange_event_brownie",
100+
"real_count": 1,
101+
"indoor_only": true,
102+
"target_var": { "context_val": "brownie_spawn_location" },
103+
"lifespan": 150,
104+
"spawn_message": "A wizened, hairy creature suddenly appears out of thin air!"
105+
}
106+
]
107+
}
108+
]
109+
}
110+
]
111+
},
112+
{
113+
"type": "effect_on_condition",
114+
"id": "EOC_XE_STRANGE_EVENT_BROWNIE_CONVERSATION",
115+
"condition": { "u_has_any_trait": [ "UNKNOWING_CHANGELING_NOBLE", "UNKNOWING_CHANGELING_COMMONER_BROWNIE" ] },
116+
"effect": [ "open_dialogue" ],
117+
"false_effect": [
118+
{
119+
"u_message": "The strange creature sees you and starts before spinning around and vanishing into thin air.",
120+
"type": "mixed"
121+
},
122+
{ "u_add_trait": "XE_FACTION_CAMP_BROWNIE_BLESSING" },
123+
{ "npc_die": { "remove_corpse": true, "supress_message": true, "remove_from_creature_tracker": true } }
124+
]
71125
}
72126
]

data/mods/Xedra_Evolved/monsters/changeling.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,5 +823,40 @@
823823
"NO_BREATHE",
824824
"SWARMS"
825825
]
826+
},
827+
{
828+
"id": "mon_xe_strange_event_brownie",
829+
"type": "MONSTER",
830+
"name": { "str": "household brownie" },
831+
"description": "A small humanoid wearing old-fashioned clothing and seemingly covered in thick hair. It looks at you in shock.",
832+
"copy-from": "mon_changeling",
833+
"chat_topics": [ "XE_STRANGE_EVENT_BROWNIE_MEETS_BROWNIE" ],
834+
"symbol": "B",
835+
"volume": "32500 ml",
836+
"weight": "41500 g",
837+
"hp": 62,
838+
"speed": 120,
839+
"melee_dice": 3,
840+
"melee_dice_sides": 6,
841+
"dodge": 6,
842+
"special_attacks": [
843+
{
844+
"id": "mon_xe_strange_brownie_open_conversation",
845+
"type": "spell",
846+
"spell_data": { "id": "mon_xe_strange_brownie_open_conversation" },
847+
"cooldown": 1,
848+
"condition": "npc_is_avatar",
849+
"monster_message": "%1$s looks at you in shock."
850+
}
851+
],
852+
"armor": {
853+
"stab": 3,
854+
"bash": 6,
855+
"cut": 2,
856+
"xe_cold_iron_cut_damage": 0,
857+
"xe_cold_iron_bash_damage": 0,
858+
"xe_cold_iron_stab_damage": 0
859+
},
860+
"extend": { "flags": [ "PACIFIST", "CAMOUFLAGE" ] }
826861
}
827862
]

data/mods/Xedra_Evolved/monsters/monster_spells.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,5 +651,18 @@
651651
"shape": "blast",
652652
"min_duration": 600,
653653
"max_duration": 1800
654+
},
655+
{
656+
"type": "SPELL",
657+
"id": "mon_xe_strange_brownie_open_conversation",
658+
"name": { "str": "Brownie Event Conversation", "//~": "NO_I18N" },
659+
"description": { "str": "Causes the strange event brownie to open dialogue on seeing you.", "//~": "NO_I18N" },
660+
"flags": [ "NO_HANDS", "NO_LEGS", "MUST_HAVE_CLASS_TO_LEARN", "RANDOM_DURATION" ],
661+
"valid_targets": [ "hostile" ],
662+
"max_level": 1,
663+
"effect": "effect_on_condition",
664+
"effect_str": "EOC_XE_STRANGE_EVENT_BROWNIE_CONVERSATION",
665+
"shape": "blast",
666+
"min_range": 10
654667
}
655668
]

data/mods/Xedra_Evolved/mutations/mutations.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2169,5 +2169,22 @@
21692169
"cancels": [ "DREAMER", "DREAMSMITH", "EATER", "INVENTOR" ],
21702170
"types": [ "HERITAGE" ],
21712171
"chargen_allow_npc": false
2172+
},
2173+
{
2174+
"type": "mutation",
2175+
"id": "XE_FACTION_CAMP_BROWNIE_BLESSING",
2176+
"name": { "str": "Brownie's Blessing", "//~": "NO_I18N" },
2177+
"points": 1,
2178+
"description": { "str": "You are blessed by a brownie. This should not be visible.", "//~": "NO_I18N" },
2179+
"purifiable": false,
2180+
"valid": false,
2181+
"player_display": false,
2182+
"chargen_allow_npc": false,
2183+
"enchantments": [
2184+
{
2185+
"condition": { "u_at_om_location": "FACTION_CAMP_ANY" },
2186+
"values": [ { "value": "CRAFTING_SPEED_MULTIPLIER", "multiply": 0.02 } ]
2187+
}
2188+
]
21722189
}
21732190
]
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
[
2+
{
3+
"id": "XE_STRANGE_EVENT_BROWNIE_MEETS_BROWNIE",
4+
"type": "talk_topic",
5+
"dynamic_line": [
6+
{
7+
"concatenate": [
8+
"&The brownie starts when it sees you and makes ready to vanish, then it takes a closer look at you.",
9+
{
10+
"u_has_trait": "UNKNOWING_CHANGELING_NOBLE",
11+
"yes": {
12+
"u_male": true,
13+
"yes": " \"My apologies for entering your court without your leave, my lord. I beg pardon. Now, if you will excuse me…\"",
14+
"no": " \"My apologies for entering your court without your leave, my lady. I beg pardon. Now, if you will excuse me…\""
15+
},
16+
"no": "\"Oh. Oh! I'm terribly sorry, I didn't realize there was already one of us here. I'll take my leave.\""
17+
},
18+
" They turn as if to go."
19+
]
20+
}
21+
],
22+
"responses": [
23+
{
24+
"text": "Us? What are you talking about?",
25+
"topic": "XE_STRANGE_EVENT_BROWNIE_FEW_BROWNIE_TRAITS_YET",
26+
"condition": {
27+
"and": [
28+
{ "math": [ "u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_BROWNIE') < 3" ] },
29+
{ "not": { "u_has_trait": "UNKNOWING_CHANGELING_NOBLE" } }
30+
]
31+
}
32+
},
33+
{
34+
"text": "Leave already? Why not join me?",
35+
"topic": "XE_STRANGE_EVENT_BROWNIE_MEDIUM_BROWNIE_TRAITS",
36+
"condition": { "and": [ { "math": [ "u_sum_traits_of_category_char_has('FAIR_FOLK_COMMONER_BROWNIE') >= 3" ] } ] }
37+
},
38+
{
39+
"text": "Why not join my court?",
40+
"topic": "XE_STRANGE_EVENT_BROWNIE_YOU_ARE_NOBLE",
41+
"condition": { "u_has_trait": "UNKNOWING_CHANGELING_NOBLE" }
42+
},
43+
{
44+
"text": "I will. Get out.",
45+
"topic": "TALK_DONE",
46+
"condition": { "u_has_trait": "UNKNOWING_CHANGELING_NOBLE" },
47+
"effect": { "npc_die": { "remove_corpse": true, "supress_message": true, "remove_from_creature_tracker": true } }
48+
},
49+
{
50+
"text": "Well, goodbye.",
51+
"topic": "TALK_DONE",
52+
"effect": { "npc_die": { "remove_corpse": true, "supress_message": true, "remove_from_creature_tracker": true } }
53+
}
54+
]
55+
},
56+
{
57+
"id": "XE_STRANGE_EVENT_BROWNIE_FEW_BROWNIE_TRAITS_YET",
58+
"type": "talk_topic",
59+
"dynamic_line": [
60+
"&The brownie looks at you closely. \"You don't know? Oh dear, you don't know, do you? Well, it's not my place to tell you, you'll have to figure it out. That's part of why they put you here, after all.\" Before you can get in another word, the brownie spins in a circle and vanishes."
61+
],
62+
"responses": [
63+
{
64+
"text": "Wait, I-",
65+
"topic": "TALK_DONE",
66+
"effect": { "npc_die": { "remove_corpse": true, "supress_message": true, "remove_from_creature_tracker": true } }
67+
}
68+
]
69+
},
70+
{
71+
"id": "XE_STRANGE_EVENT_BROWNIE_MEDIUM_BROWNIE_TRAITS",
72+
"type": "talk_topic",
73+
"dynamic_line": [
74+
"&The brownie shakes their head. \"It's a generous offer, but no thank you. I'm looking for a place I can make my mark without the mortals breathing down my back. Given another few decades you'll probably understand, if this world has that long. And if not, well, I'll see you Under the Hill.\" Before you can get in another word, the brownie spins in a circle and vanishes."
75+
],
76+
"responses": [
77+
{
78+
"text": "Farewell then.",
79+
"topic": "TALK_DONE",
80+
"effect": { "npc_die": { "remove_corpse": true, "supress_message": true, "remove_from_creature_tracker": true } }
81+
}
82+
]
83+
},
84+
{
85+
"id": "XE_STRANGE_EVENT_BROWNIE_YOU_ARE_NOBLE",
86+
"type": "talk_topic",
87+
"dynamic_line": [
88+
"&The brownie shakes their head. \"I thank you for the generous offer, but no, my road doesn't end here. I have a long way to travel yet, and by your leave, I had best take the first step on it.\""
89+
],
90+
"responses": [
91+
{
92+
"text": "Farewell then.",
93+
"topic": "TALK_DONE",
94+
"effect": { "npc_die": { "remove_corpse": true, "supress_message": true, "remove_from_creature_tracker": true } }
95+
}
96+
]
97+
}
98+
]

0 commit comments

Comments
 (0)