Skip to content

Commit 756dbff

Browse files
[XE] Vampire drinking and gazes adjustments. (#82794)
* Can't directly drink blood from vampires. * Moroi aren't Anathema. * Vampires are immune to vampire mind powers. * Saint's blood doesn't feed even from the vein. * NPCs hate being drank from without their permission. * Drinking a NPC too much will kill them. * Star vampires don't drink vampires. * Monsters can't drink saint's blood. * Fix monster drink issues. * Remove unneeded attacks. * More fixes. * No need to check for traits if it's not even checking for NPCs. * Implement test_eoc for star vampire drink attack.
1 parent 523d681 commit 756dbff

File tree

7 files changed

+240
-173
lines changed

7 files changed

+240
-173
lines changed

data/json/effects_on_condition/misc_effect_on_condition.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,5 +448,44 @@
448448
"id": "EOC_CONDITION_XE_SUNSET_MORALE_OVERRIDES",
449449
"condition": { "math": [ "0 == 0" ] },
450450
"effect": [ ]
451+
},
452+
{
453+
"type": "effect_on_condition",
454+
"id": "target_valid_drink",
455+
"condition": {
456+
"and": [
457+
{ "not": { "npc_has_flag": "BLEED_IMMUNE" } },
458+
{ "not": { "npc_has_trait": "ACIDBLOOD" } },
459+
{ "not": { "npc_has_trait": "THRESH_CRUSTACEAN" } },
460+
{ "not": { "npc_has_trait": "THRESH_INSECT" } },
461+
{ "not": { "npc_has_trait": "THRESH_CEPHALOPOD" } },
462+
{ "not": { "npc_has_trait": "THRESH_GASTROPOD" } },
463+
{ "not": { "npc_has_species": "ZOMBIE" } },
464+
{ "not": { "npc_has_species": "MAMMAL" } },
465+
{ "not": { "npc_has_species": "AMPHIBIAN" } },
466+
{ "not": { "npc_has_species": "BIRD" } },
467+
{ "not": { "npc_has_species": "CYBORG" } },
468+
{ "not": { "npc_has_species": "REPTILE" } },
469+
{ "not": { "npc_has_species": "FISH" } },
470+
{ "not": { "npc_has_species": "KRAKEN" } },
471+
{ "not": { "npc_has_species": "MUTANT" } },
472+
{ "not": { "npc_has_species": "NETHER" } },
473+
{ "not": { "npc_has_species": "MIGO" } },
474+
{ "not": { "npc_has_species": "FUNGUS" } },
475+
{ "not": { "npc_has_species": "SLIME" } },
476+
{ "not": { "npc_has_species": "LEECH_PLANT" } },
477+
{ "not": { "npc_has_species": "INSECT" } },
478+
{ "not": { "npc_has_species": "CENTIPEDE" } },
479+
{ "not": { "npc_has_species": "INSECT_FLYING" } },
480+
{ "not": { "npc_has_species": "SPIDER" } },
481+
{ "not": { "npc_has_species": "PLANT" } },
482+
{ "not": { "npc_has_species": "MOLLUSK" } },
483+
{ "not": { "npc_has_species": "WORM" } },
484+
{ "not": { "npc_has_species": "ROBOT" } },
485+
{ "not": { "npc_has_species": "HORROR" } },
486+
{ "not": { "npc_has_species": "PLANT" } },
487+
{ "not": { "npc_has_species": "ABERRATION" } }
488+
]
489+
}
451490
}
452491
]

data/json/monsters/nether.json

Lines changed: 4 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -573,41 +573,7 @@
573573
"damage_max_instance": [ { "damage_type": "stab", "amount": 25, "armor_penetration": 15 } ],
574574
"infection_chance": 15,
575575
"//": "Bite for targets whose blood the star vampire does not want or cannot drink. Should never target the player unless they can't bleed or have unappetizing blood.",
576-
"condition": {
577-
"or": [
578-
{ "npc_has_flag": "BLEED_IMMUNE" },
579-
{ "npc_has_trait": "ACIDBLOOD" },
580-
{ "npc_has_trait": "THRESH_CRUSTACEAN" },
581-
{ "npc_has_trait": "THRESH_INSECT" },
582-
{ "npc_has_trait": "THRESH_CEPHALOPOD" },
583-
{ "npc_has_trait": "THRESH_GASTROPOD" },
584-
{ "npc_has_species": "ZOMBIE" },
585-
{ "npc_has_species": "MAMMAL" },
586-
{ "npc_has_species": "AMPHIBIAN" },
587-
{ "npc_has_species": "BIRD" },
588-
{ "npc_has_species": "CYBORG" },
589-
{ "npc_has_species": "REPTILE" },
590-
{ "npc_has_species": "FISH" },
591-
{ "npc_has_species": "KRAKEN" },
592-
{ "npc_has_species": "MUTANT" },
593-
{ "npc_has_species": "NETHER" },
594-
{ "npc_has_species": "MIGO" },
595-
{ "npc_has_species": "FUNGUS" },
596-
{ "npc_has_species": "SLIME" },
597-
{ "npc_has_species": "LEECH_PLANT" },
598-
{ "npc_has_species": "INSECT" },
599-
{ "npc_has_species": "CENTIPEDE" },
600-
{ "npc_has_species": "INSECT_FLYING" },
601-
{ "npc_has_species": "SPIDER" },
602-
{ "npc_has_species": "PLANT" },
603-
{ "npc_has_species": "MOLLUSK" },
604-
{ "npc_has_species": "WORM" },
605-
{ "npc_has_species": "ROBOT" },
606-
{ "npc_has_species": "HORROR" },
607-
{ "npc_has_species": "PLANT" },
608-
{ "npc_has_species": "ABERRATION" }
609-
]
610-
},
576+
"condition": { "not": { "test_eoc": "target_valid_drink" } },
611577
"hit_dmg_u": "%1$s bites your %2$s with its fang-filled maw!",
612578
"hit_dmg_npc": "%1$s bites <npcname>'s %2$s with its fang-filled maw!",
613579
"miss_msg_u": "%1$s tries to bite you, but you dodge!",
@@ -620,48 +586,7 @@
620586
"attack_type": "melee",
621587
"id": "star_vampire_blood_drinking",
622588
"damage_max_instance": [ { "damage_type": "stab", "amount": 5, "armor_penetration": 5, "armor_multiplier": 0.5 } ],
623-
"condition": {
624-
"and": [
625-
{ "u_has_flag": "GRAB_FILTER" },
626-
{ "npc_has_flag": "GRAB" },
627-
{
628-
"and": [
629-
{ "not": { "npc_has_trait": "ACIDBLOOD" } },
630-
{ "not": { "npc_has_trait": "THRESH_CRUSTACEAN" } },
631-
{ "not": { "npc_has_trait": "THRESH_INSECT" } },
632-
{ "not": { "npc_has_trait": "THRESH_CEPHALOPOD" } },
633-
{ "not": { "npc_has_trait": "THRESH_GASTROPOD" } },
634-
{ "not": { "npc_has_flag": "BLEED_IMMUNE" } },
635-
{ "not": { "npc_has_species": "ZOMBIE" } },
636-
{ "not": { "npc_has_species": "MAMMAL" } },
637-
{ "not": { "npc_has_species": "AMPHIBIAN" } },
638-
{ "not": { "npc_has_species": "BIRD" } },
639-
{ "not": { "npc_has_species": "CYBORG" } },
640-
{ "not": { "npc_has_species": "REPTILE" } },
641-
{ "not": { "npc_has_species": "FISH" } },
642-
{ "not": { "npc_has_species": "KRAKEN" } },
643-
{ "not": { "npc_has_species": "MUTANT" } },
644-
{ "not": { "npc_has_species": "NETHER" } },
645-
{ "not": { "npc_has_species": "MIGO" } },
646-
{ "not": { "npc_has_species": "FUNGUS" } },
647-
{ "not": { "npc_has_species": "SLIME" } },
648-
{ "not": { "npc_has_species": "LEECH_PLANT" } },
649-
{ "not": { "npc_has_species": "INSECT" } },
650-
{ "not": { "npc_has_species": "CENTIPEDE" } },
651-
{ "not": { "npc_has_species": "INSECT_FLYING" } },
652-
{ "not": { "npc_has_species": "SPIDER" } },
653-
{ "not": { "npc_has_species": "PLANT" } },
654-
{ "not": { "npc_has_species": "MOLLUSK" } },
655-
{ "not": { "npc_has_species": "WORM" } },
656-
{ "not": { "npc_has_species": "ROBOT" } },
657-
{ "not": { "npc_has_species": "HORROR" } },
658-
{ "not": { "npc_has_species": "PLANT" } },
659-
{ "not": { "npc_has_species": "ABERRATION" } },
660-
{ "not": { "npc_has_species": "FERAL" } }
661-
]
662-
}
663-
]
664-
},
589+
"condition": { "and": [ { "u_has_flag": "GRAB_FILTER" }, { "npc_has_flag": "GRAB" }, { "test_eoc": "target_valid_drink" } ] },
665590
"eoc": [ "EOC_STAR_VAMPIRE_FANGED_DRINK_BLOOD" ],
666591
"self_effects_ondmg": [ { "id": "star_vampire_blood_drank", "duration": 10 } ],
667592
"cooldown": 1,
@@ -761,41 +686,7 @@
761686
"damage_max_instance": [ { "damage_type": "stab", "amount": 13, "armor_penetration": 7 } ],
762687
"infection_chance": 15,
763688
"//": "Bite for targets whose blood the star vampire does not want or cannot drink. Should never target the player unless they can't bleed or have unappetizing blood.",
764-
"condition": {
765-
"or": [
766-
{ "npc_has_flag": "BLEED_IMMUNE" },
767-
{ "npc_has_trait": "ACIDBLOOD" },
768-
{ "npc_has_trait": "THRESH_CRUSTACEAN" },
769-
{ "npc_has_trait": "THRESH_INSECT" },
770-
{ "npc_has_trait": "THRESH_CEPHALOPOD" },
771-
{ "npc_has_trait": "THRESH_GASTROPOD" },
772-
{ "npc_has_species": "ZOMBIE" },
773-
{ "npc_has_species": "MAMMAL" },
774-
{ "npc_has_species": "AMPHIBIAN" },
775-
{ "npc_has_species": "BIRD" },
776-
{ "npc_has_species": "CYBORG" },
777-
{ "npc_has_species": "REPTILE" },
778-
{ "npc_has_species": "FISH" },
779-
{ "npc_has_species": "KRAKEN" },
780-
{ "npc_has_species": "MUTANT" },
781-
{ "npc_has_species": "NETHER" },
782-
{ "npc_has_species": "MIGO" },
783-
{ "npc_has_species": "FUNGUS" },
784-
{ "npc_has_species": "SLIME" },
785-
{ "npc_has_species": "LEECH_PLANT" },
786-
{ "npc_has_species": "INSECT" },
787-
{ "npc_has_species": "CENTIPEDE" },
788-
{ "npc_has_species": "INSECT_FLYING" },
789-
{ "npc_has_species": "SPIDER" },
790-
{ "npc_has_species": "PLANT" },
791-
{ "npc_has_species": "MOLLUSK" },
792-
{ "npc_has_species": "WORM" },
793-
{ "npc_has_species": "ROBOT" },
794-
{ "npc_has_species": "HORROR" },
795-
{ "npc_has_species": "PLANT" },
796-
{ "npc_has_species": "ABERRATION" }
797-
]
798-
},
689+
"condition": { "not": { "test_eoc": "target_valid_drink" } },
799690
"hit_dmg_u": "%1$s bites your %2$s with its maw!",
800691
"hit_dmg_npc": "%1$s bites <npcname>'s %2$s with its maw!",
801692
"miss_msg_u": "%1$s tries to bite you, but you dodge!",
@@ -808,48 +699,7 @@
808699
"attack_type": "melee",
809700
"id": "star_vampire_blood_drinking",
810701
"damage_max_instance": [ { "damage_type": "stab", "amount": 3, "armor_penetration": 3, "armor_multiplier": 0.75 } ],
811-
"condition": {
812-
"and": [
813-
{ "u_has_flag": "GRAB_FILTER" },
814-
{ "npc_has_flag": "GRAB" },
815-
{
816-
"and": [
817-
{ "not": { "npc_has_trait": "ACIDBLOOD" } },
818-
{ "not": { "npc_has_trait": "THRESH_CRUSTACEAN" } },
819-
{ "not": { "npc_has_trait": "THRESH_INSECT" } },
820-
{ "not": { "npc_has_trait": "THRESH_CEPHALOPOD" } },
821-
{ "not": { "npc_has_trait": "THRESH_GASTROPOD" } },
822-
{ "not": { "npc_has_flag": "BLEED_IMMUNE" } },
823-
{ "not": { "npc_has_species": "ZOMBIE" } },
824-
{ "not": { "npc_has_species": "MAMMAL" } },
825-
{ "not": { "npc_has_species": "AMPHIBIAN" } },
826-
{ "not": { "npc_has_species": "BIRD" } },
827-
{ "not": { "npc_has_species": "CYBORG" } },
828-
{ "not": { "npc_has_species": "REPTILE" } },
829-
{ "not": { "npc_has_species": "FISH" } },
830-
{ "not": { "npc_has_species": "KRAKEN" } },
831-
{ "not": { "npc_has_species": "MUTANT" } },
832-
{ "not": { "npc_has_species": "NETHER" } },
833-
{ "not": { "npc_has_species": "MIGO" } },
834-
{ "not": { "npc_has_species": "FUNGUS" } },
835-
{ "not": { "npc_has_species": "SLIME" } },
836-
{ "not": { "npc_has_species": "LEECH_PLANT" } },
837-
{ "not": { "npc_has_species": "INSECT" } },
838-
{ "not": { "npc_has_species": "CENTIPEDE" } },
839-
{ "not": { "npc_has_species": "INSECT_FLYING" } },
840-
{ "not": { "npc_has_species": "SPIDER" } },
841-
{ "not": { "npc_has_species": "PLANT" } },
842-
{ "not": { "npc_has_species": "MOLLUSK" } },
843-
{ "not": { "npc_has_species": "WORM" } },
844-
{ "not": { "npc_has_species": "ROBOT" } },
845-
{ "not": { "npc_has_species": "HORROR" } },
846-
{ "not": { "npc_has_species": "PLANT" } },
847-
{ "not": { "npc_has_species": "ABERRATION" } },
848-
{ "not": { "npc_has_species": "FERAL" } }
849-
]
850-
}
851-
]
852-
},
702+
"condition": { "and": [ { "u_has_flag": "GRAB_FILTER" }, { "npc_has_flag": "GRAB" }, { "test_eoc": "target_valid_drink" } ] },
853703
"eoc": [ "EOC_STAR_VAMPIRE_COILING_DRINK_BLOOD" ],
854704
"self_effects_ondmg": [ { "id": "star_vampire_blood_drank", "duration": 5 } ],
855705
"cooldown": 1,

data/mods/Xedra_Evolved/eocs/eoc_mod_overrides.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,48 @@
1010
"id": "EOC_CONDITIONS_LILIN_FANTASY_SPECIES_RUACH_DRAIN",
1111
"condition": { "math": [ "false" ] },
1212
"effect": [ ]
13+
},
14+
{
15+
"type": "effect_on_condition",
16+
"id": "target_valid_drink",
17+
"condition": {
18+
"and": [
19+
{ "not": { "npc_has_flag": "BLEED_IMMUNE" } },
20+
{ "not": { "npc_has_trait": "ACIDBLOOD" } },
21+
{ "not": { "npc_has_trait": "THRESH_CRUSTACEAN" } },
22+
{ "not": { "npc_has_trait": "THRESH_INSECT" } },
23+
{ "not": { "npc_has_trait": "THRESH_CEPHALOPOD" } },
24+
{ "not": { "npc_has_trait": "THRESH_GASTROPOD" } },
25+
{ "not": { "npc_has_species": "ZOMBIE" } },
26+
{ "not": { "npc_has_species": "MAMMAL" } },
27+
{ "not": { "npc_has_species": "AMPHIBIAN" } },
28+
{ "not": { "npc_has_species": "BIRD" } },
29+
{ "not": { "npc_has_species": "CYBORG" } },
30+
{ "not": { "npc_has_species": "REPTILE" } },
31+
{ "not": { "npc_has_species": "FISH" } },
32+
{ "not": { "npc_has_species": "KRAKEN" } },
33+
{ "not": { "npc_has_species": "MUTANT" } },
34+
{ "not": { "npc_has_species": "NETHER" } },
35+
{ "not": { "npc_has_species": "MIGO" } },
36+
{ "not": { "npc_has_species": "FUNGUS" } },
37+
{ "not": { "npc_has_species": "SLIME" } },
38+
{ "not": { "npc_has_species": "LEECH_PLANT" } },
39+
{ "not": { "npc_has_species": "INSECT" } },
40+
{ "not": { "npc_has_species": "CENTIPEDE" } },
41+
{ "not": { "npc_has_species": "INSECT_FLYING" } },
42+
{ "not": { "npc_has_species": "SPIDER" } },
43+
{ "not": { "npc_has_species": "PLANT" } },
44+
{ "not": { "npc_has_species": "MOLLUSK" } },
45+
{ "not": { "npc_has_species": "WORM" } },
46+
{ "not": { "npc_has_species": "ROBOT" } },
47+
{ "not": { "npc_has_species": "HORROR" } },
48+
{ "not": { "npc_has_species": "PLANT" } },
49+
{ "not": { "npc_has_species": "ABERRATION" } },
50+
{ "not": { "npc_has_species": "VAMPIRE" } },
51+
{ "not": { "npc_has_species": "VAMPIRE_ANATHEMA" } },
52+
{ "not": { "npc_has_trait": "VAMPIRE" } },
53+
{ "not": { "npc_has_trait": "BLOOD_OF_SAINTS" } }
54+
]
55+
}
1356
}
1457
]

data/mods/Xedra_Evolved/monsters/bloodsuckers.json

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"id": "bite_humanoid",
5555
"cooldown": 3,
5656
"damage_max_instance": [ { "damage_type": "stab", "amount": 10, "armor_multiplier": 0.2 } ],
57-
"eoc": [ "EOC_VAMPIRE_DRINK_BLOOD", "EOC_FERAL_VAMPIRE_GAIN_RANDOM_BUFF" ]
57+
"eoc": [ "EOC_VAMPIRE_DRINK_BLOOD", "EOC_FERAL_VAMPIRE_DRINK_GAIN_RANDOM_BUFF" ]
5858
},
5959
{
6060
"type": "monster_attack",
@@ -131,7 +131,19 @@
131131
{
132132
"type": "effect_on_condition",
133133
"id": "EOC_VAMPIRE_DRINK_BLOOD",
134-
"condition": "npc_is_character",
134+
"condition": {
135+
"and": [
136+
"npc_is_character",
137+
{ "not": { "npc_has_trait": "ACIDBLOOD" } },
138+
{ "not": { "npc_has_trait": "THRESH_CRUSTACEAN" } },
139+
{ "not": { "npc_has_trait": "THRESH_INSECT" } },
140+
{ "not": { "npc_has_trait": "THRESH_CEPHALOPOD" } },
141+
{ "not": { "npc_has_trait": "THRESH_GASTROPOD" } },
142+
{ "not": { "npc_has_flag": "BLEED_IMMUNE" } },
143+
{ "not": { "npc_has_trait": "VAMPIRE" } },
144+
{ "not": { "npc_has_trait": "BLOOD_OF_SAINTS" } }
145+
]
146+
},
135147
"effect": [
136148
{ "math": [ "_vampire_amount_drained", "=", "400 + rand(100)" ] },
137149
{ "u_add_effect": "star_vampire_blood_drank", "duration": 30 },
@@ -158,7 +170,50 @@
158170
{
159171
"type": "effect_on_condition",
160172
"id": "EOC_FERAL_VAMPIRE_GAIN_RANDOM_BUFF",
161-
"condition": { "or": [ "npc_is_character", { "npc_has_species": "HUMAN" }, { "npc_has_species": "FERAL" } ] },
173+
"effect": {
174+
"switch": { "math": [ "rand(6)" ] },
175+
"cases": [
176+
{
177+
"case": 0,
178+
"effect": [ { "u_add_effect": "effect_vampire_monster_strength", "duration": { "math": [ "rng(15,45)" ] } } ]
179+
},
180+
{
181+
"case": 2,
182+
"effect": [ { "u_add_effect": "effect_vampire_monster_agility", "duration": { "math": [ "rng(15,45)" ] } } ]
183+
},
184+
{
185+
"case": 4,
186+
"effect": [ { "u_add_effect": "effect_vampire_monster_resilience", "duration": { "math": [ "rng(15,45)" ] } } ]
187+
},
188+
{
189+
"case": 6,
190+
"effect": [ { "u_add_effect": "effect_vampire_monster_speed", "duration": { "math": [ "rng(15,45)" ] } } ]
191+
}
192+
]
193+
}
194+
},
195+
{
196+
"type": "effect_on_condition",
197+
"id": "EOC_FERAL_VAMPIRE_DRINK_GAIN_RANDOM_BUFF",
198+
"condition": {
199+
"or": [
200+
{ "and": [ { "npc_has_species": "HUMAN" }, { "not": { "npc_has_species": "VAMPIRE" } } ] },
201+
{ "and": [ { "npc_has_species": "FERAL" }, { "not": { "npc_has_species": "VAMPIRE" } } ] },
202+
{
203+
"and": [
204+
"npc_is_character",
205+
{ "not": { "npc_has_trait": "ACIDBLOOD" } },
206+
{ "not": { "npc_has_trait": "THRESH_CRUSTACEAN" } },
207+
{ "not": { "npc_has_trait": "THRESH_INSECT" } },
208+
{ "not": { "npc_has_trait": "THRESH_CEPHALOPOD" } },
209+
{ "not": { "npc_has_trait": "THRESH_GASTROPOD" } },
210+
{ "not": { "npc_has_flag": "BLEED_IMMUNE" } },
211+
{ "not": { "npc_has_trait": "VAMPIRE" } },
212+
{ "not": { "npc_has_trait": "BLOOD_OF_SAINTS" } }
213+
]
214+
}
215+
]
216+
},
162217
"effect": {
163218
"switch": { "math": [ "rand(6)" ] },
164219
"cases": [

data/mods/Xedra_Evolved/monsters/monster_spells.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,13 @@
681681
{
682682
"type": "effect_on_condition",
683683
"id": "EOC_XE_VAMPIRE_MONSTER_FEAR_GAZE",
684+
"condition": {
685+
"and": [
686+
{ "not": { "u_has_species": "VAMPIRE" } },
687+
{ "not": { "u_has_species": "VAMPIRE_ANATHEMA" } },
688+
{ "not": { "u_has_trait": "VAMPIRE" } }
689+
]
690+
},
684691
"effect": [
685692
{ "u_add_effect": "effect_vampire_fear_gazed", "duration": 300 },
686693
{

0 commit comments

Comments
 (0)