diff --git a/data/json/effects.json b/data/json/effects.json index 0835e2c7c5d91..2ec88e025be7d 100644 --- a/data/json/effects.json +++ b/data/json/effects.json @@ -4796,7 +4796,7 @@ "id": "star_vampire_blood_drink", "type": "effect_type", "name": [ "Exsanguination" ], - "desc": [ "The monster is drinking your blood!" ], + "desc": [ "The monster is greedily drinking your blood!" ], "rating": "bad", "resist_traits": [ "BLEED_IMMUNE" ], "show_in_info": true, @@ -4809,6 +4809,23 @@ { "vitamin": "redcells", "rate": [ [ -250, -650 ] ], "tick": [ "1 s" ] } ] }, + { + "id": "star_vampire_blood_drink", + "type": "effect_type", + "name": [ "Hemorrhage" ], + "desc": [ "The monster is sucking up your blood!" ], + "rating": "bad", + "resist_traits": [ "BLEED_IMMUNE" ], + "show_in_info": true, + "max_intensity": 2, + "show_intensity": false, + "int_decay_step": -2, + "int_decay_tick": 1, + "vitamins": [ + { "vitamin": "blood", "rate": [ [ -125, -325 ] ], "tick": [ "1 s" ] }, + { "vitamin": "redcells", "rate": [ [ -125, -325 ] ], "tick": [ "1 s" ] } + ] + }, { "id": "star_vampire_blood_drink_feral", "type": "effect_type", diff --git a/data/json/monstergroups/nether.json b/data/json/monstergroups/nether.json index fa0bbdcc044ac..2fd2c93efbcff 100644 --- a/data/json/monstergroups/nether.json +++ b/data/json/monstergroups/nether.json @@ -32,7 +32,8 @@ { "monster": "mon_unseen_hunter", "weight": 100, "starts": "180 hours" }, { "monster": "mon_yugg", "weight": 100, "cost_multiplier": 0 }, { "monster": "mon_nuckalavee", "weight": 100, "cost_multiplier": 0 }, - { "monster": "mon_star_vampire", "weight": 100, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire", "weight": 50, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire_coiling", "weight": 50, "cost_multiplier": 0 }, { "monster": "mon_gelatin", "weight": 100, "cost_multiplier": 0 }, { "monster": "mon_flaming_eye", "weight": 100, "cost_multiplier": 0 }, { "monster": "mon_kreck", "weight": 100, "cost_multiplier": 0 }, @@ -53,7 +54,8 @@ { "monster": "mon_gelatin", "weight": 120, "cost_multiplier": 0 }, { "monster": "mon_flaming_eye", "weight": 120, "cost_multiplier": 0 }, { "monster": "mon_nuckalavee", "weight": 25, "cost_multiplier": 0 }, - { "monster": "mon_star_vampire", "weight": 15, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire", "weight": 7, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire_coiling", "weight": 7, "cost_multiplier": 0 }, { "monster": "mon_kreck", "weight": 210, "cost_multiplier": 0 }, { "monster": "mon_gozu", "weight": 25, "cost_multiplier": 0 }, { "monster": "mon_shoggoth", "weight": 5, "cost_multiplier": 0 } @@ -121,7 +123,8 @@ { "monster": "mon_gracke", "weight": 150, "cost_multiplier": 0 }, { "monster": "mon_unseen_hunter", "weight": 75, "cost_multiplier": 0, "starts": "15 days" }, { "monster": "mon_blank", "weight": 100, "cost_multiplier": 0 }, - { "monster": "mon_star_vampire", "weight": 50, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire", "weight": 25, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire_coiling", "weight": 25, "cost_multiplier": 0 }, { "monster": "mon_shoggoth", "weight": 30, "cost_multiplier": 0 }, { "monster": "mon_flying_polyp", "weight": 50, "cost_multiplier": 0 }, { "monster": "mon_nuckalavee", "weight": 50, "cost_multiplier": 0 }, @@ -138,7 +141,8 @@ { "monster": "mon_gracke", "weight": 50, "cost_multiplier": 0 }, { "monster": "mon_unseen_hunter", "weight": 30, "cost_multiplier": 0, "starts": "15 days" }, { "monster": "mon_blank", "weight": 50, "cost_multiplier": 0 }, - { "monster": "mon_star_vampire", "weight": 20, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire", "weight": 10, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire_coiling", "weight": 10, "cost_multiplier": 0 }, { "monster": "mon_shoggoth", "weight": 10, "cost_multiplier": 0 }, { "monster": "mon_yugg", "weight": 5, "cost_multiplier": 0 } ] diff --git a/data/json/monsters/nether.json b/data/json/monsters/nether.json index 6a20196858f50..b842a502f7ca6 100644 --- a/data/json/monsters/nether.json +++ b/data/json/monsters/nether.json @@ -539,8 +539,10 @@ { "id": "mon_star_vampire", "type": "MONSTER", + "//": "Star vampires are split into two: The fanged version draws blood very, very quickly, while the coiling version isn't as fast, but its hards are quite hard to escape from.", + "//2": "These variations are concealed from the player, with the differences only being visible via examining the vampire and reading the description. This removes visible, awkward gamification, while still keeping the intent of the split. (less walking corpse pyrrhic victories)", "name": { "str": "star vampire" }, - "description": "Originally invisible, you can now see the myriad writhing tentacles tipped with gnashing maws that make up this creature. The small central body is dominated by an enormous fanged mouth from which emerges a near-constant high-pitched tittering.", + "description": "Originally invisible, you can now see the myriad thin tentacles tipped with gnashing maws that make up this creature. The small central body is dominated by an enormous fanged mouth from which emerges a near-constant high-pitched tittering.", "default_faction": "nether_hate_humans", "bodytype": "blob", "species": [ "NETHER" ], @@ -566,7 +568,6 @@ "special_attacks": [ [ "PARROT", 5 ], { "id": "grab", "cooldown": 5, "grab_data": { "pull_weight_ratio": 2.0 } }, - { "id": "grab_2", "cooldown": 5, "grab_data": { "pull_weight_ratio": 2.0 } }, { "type": "monster_attack", "attack_type": "bite", @@ -727,6 +728,153 @@ ], "armor": { "bash": 8, "electric": 3 } }, + { + "id": "mon_star_vampire_coiling", + "type": "MONSTER", + "copy-from": "mon_star_vampire", + "description": "Originally invisible, you can now see the thick coiling tentacles tipped with rather flat maws that make up this creature. The small central body is dominated by an enormous mouth from which emerges a near-constant high-pitched tittering.", + "regeneration_modifiers": [ [ "star_vampire_blood_drank", 5 ] ], + "color": "pink", + "special_attacks": [ + [ "PARROT", 5 ], + { "id": "grab", "cooldown": 5, "grab_data": { "pull_weight_ratio": 2.0 } }, + { + "type": "monster_attack", + "attack_type": "bite", + "id": "star_vampire_bite", + "cooldown": 3, + "damage_max_instance": [ { "damage_type": "stab", "amount": 13, "armor_penetration": 7 } ], + "infection_chance": 15, + "//": "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.", + "condition": { + "or": [ + { "npc_has_flag": "BLEED_IMMUNE" }, + { "npc_has_trait": "ACIDBLOOD" }, + { "npc_has_trait": "THRESH_CRUSTACEAN" }, + { "npc_has_trait": "THRESH_INSECT" }, + { "npc_has_trait": "THRESH_CEPHALOPOD" }, + { "npc_has_trait": "THRESH_GASTROPOD" }, + { "npc_has_species": "ZOMBIE" }, + { "npc_has_species": "MAMMAL" }, + { "npc_has_species": "AMPHIBIAN" }, + { "npc_has_species": "BIRD" }, + { "npc_has_species": "CYBORG" }, + { "npc_has_species": "REPTILE" }, + { "npc_has_species": "FISH" }, + { "npc_has_species": "KRAKEN" }, + { "npc_has_species": "MUTANT" }, + { "npc_has_species": "NETHER" }, + { "npc_has_species": "MIGO" }, + { "npc_has_species": "FUNGUS" }, + { "npc_has_species": "SLIME" }, + { "npc_has_species": "LEECH_PLANT" }, + { "npc_has_species": "INSECT" }, + { "npc_has_species": "CENTIPEDE" }, + { "npc_has_species": "INSECT_FLYING" }, + { "npc_has_species": "SPIDER" }, + { "npc_has_species": "PLANT" }, + { "npc_has_species": "MOLLUSK" }, + { "npc_has_species": "WORM" }, + { "npc_has_species": "ROBOT" }, + { "npc_has_species": "HORROR" }, + { "npc_has_species": "PLANT" }, + { "npc_has_species": "ABERRATION" } + ] + }, + "hit_dmg_u": "%1$s bites your %2$s with its maw!", + "hit_dmg_npc": "%1$s bites 's %2$s with its maw!", + "miss_msg_u": "%1$s tries to bite you, but you dodge!", + "miss_msg_npc": "%1$s tries to bite , but they dodge!", + "no_dmg_msg_u": "%1$s tries to bite your %2$s, but can't penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to bite 's %2$s, but can't penetrate their armor." + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "star_vampire_blood_drinking", + "damage_max_instance": [ { "damage_type": "stab", "amount": 3, "armor_penetration": 3, "armor_multiplier": 0.75 } ], + "condition": { + "and": [ + { "u_has_flag": "GRAB_FILTER" }, + { "npc_has_flag": "GRAB" }, + { + "and": [ + { "not": { "npc_has_trait": "ACIDBLOOD" } }, + { "not": { "npc_has_trait": "THRESH_CRUSTACEAN" } }, + { "not": { "npc_has_trait": "THRESH_INSECT" } }, + { "not": { "npc_has_trait": "THRESH_CEPHALOPOD" } }, + { "not": { "npc_has_trait": "THRESH_GASTROPOD" } }, + { "not": { "npc_has_flag": "BLEED_IMMUNE" } }, + { "not": { "npc_has_species": "ZOMBIE" } }, + { "not": { "npc_has_species": "MAMMAL" } }, + { "not": { "npc_has_species": "AMPHIBIAN" } }, + { "not": { "npc_has_species": "BIRD" } }, + { "not": { "npc_has_species": "CYBORG" } }, + { "not": { "npc_has_species": "REPTILE" } }, + { "not": { "npc_has_species": "FISH" } }, + { "not": { "npc_has_species": "KRAKEN" } }, + { "not": { "npc_has_species": "MUTANT" } }, + { "not": { "npc_has_species": "NETHER" } }, + { "not": { "npc_has_species": "MIGO" } }, + { "not": { "npc_has_species": "FUNGUS" } }, + { "not": { "npc_has_species": "SLIME" } }, + { "not": { "npc_has_species": "LEECH_PLANT" } }, + { "not": { "npc_has_species": "INSECT" } }, + { "not": { "npc_has_species": "CENTIPEDE" } }, + { "not": { "npc_has_species": "INSECT_FLYING" } }, + { "not": { "npc_has_species": "SPIDER" } }, + { "not": { "npc_has_species": "PLANT" } }, + { "not": { "npc_has_species": "MOLLUSK" } }, + { "not": { "npc_has_species": "WORM" } }, + { "not": { "npc_has_species": "ROBOT" } }, + { "not": { "npc_has_species": "HORROR" } }, + { "not": { "npc_has_species": "PLANT" } }, + { "not": { "npc_has_species": "ABERRATION" } }, + { "not": { "npc_has_species": "FERAL" } } + ] + } + ] + }, + "effects": [ { "id": "star_vampire_blood_drink", "duration": 2, "chance": 100 } ], + "self_effects_ondmg": [ { "id": "star_vampire_blood_drank", "duration": 5 } ], + "cooldown": 1, + "move_cost": 100, + "hit_dmg_u": "%1$s clutches onto your %2$s and starts sucking up your blood!", + "hit_dmg_npc": "%1$s clutches onto 's %2$s and starts sucking up their blood!", + "miss_msg_u": "%1$s tries to clutch onto you, but you dodge!", + "miss_msg_npc": "%1$s tries to clutch onto you , but they dodge!", + "no_dmg_msg_u": "%1$s tries to clutch onto your %2$s, but can't penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to clutch onto 's %2$s, but can't penetrate their armor." + }, + { + "type": "monster_attack", + "attack_type": "melee", + "id": "star_vampire_blood_drinking_ferals", + "//": "Since ferals have no blood vitamin, a separate attack to simulate drinking their blood", + "damage_max_instance": [ { "damage_type": "stab", "amount": 7, "armor_penetration": 35, "armor_multiplier": 0.75 } ], + "condition": { "and": [ { "u_has_flag": "GRAB_FILTER" }, { "npc_has_flag": "GRAB" }, { "npc_has_species": "FERAL" } ] }, + "effects": [ { "id": "star_vampire_blood_drink_feral", "duration": 2, "chance": 100 } ], + "self_effects_ondmg": [ { "id": "star_vampire_blood_drank", "duration": 5 } ], + "cooldown": 1, + "move_cost": 100, + "hit_dmg_u": "%1$s clutches onto your %2$s and starts sucking up your blood!", + "hit_dmg_npc": "%1$s clutches onto 's %2$s and starts sucking up their blood!", + "miss_msg_u": "%1$s tries to clutch onto you, but you dodge!", + "miss_msg_npc": "%1$s tries to clutch onto you , but they dodge!", + "no_dmg_msg_u": "%1$s tries to clutch onto your %2$s, but can't penetrate your armor.", + "no_dmg_msg_npc": "%1$s tries to clutch onto 's %2$s, but can't penetrate their armor." + }, + { + "id": "star_vampire_invisibility", + "type": "spell", + "spell_data": { "id": "star_vampire_invisibility_spell", "min_level": 3 }, + "cooldown": 1, + "allow_no_target": true, + "condition": { "or": [ { "not": { "u_has_effect": "invisibility" } }, { "not": { "u_has_effect": "star_vampire_blood_drank" } } ] }, + "monster_message": "" + } + ] + }, { "id": "mon_unseen_hunter", "type": "MONSTER", diff --git a/data/json/speech.json b/data/json/speech.json index e4f0ed03f6ddd..1f6561a18c5cd 100644 --- a/data/json/speech.json +++ b/data/json/speech.json @@ -2935,7 +2935,7 @@ }, { "type": "speech", - "speaker": [ "mon_star_vampire", "mon_vocal_frog", "mon_vocal_bigfrog" ], + "speaker": [ "mon_star_vampire", "mon_star_vampire_coiling", "mon_vocal_frog", "mon_vocal_bigfrog" ], "sound": "a high-pitched tittering.", "volume": 20 }, diff --git a/data/mods/Magiclysm/monsters/vanilla_monster_damage_overwrite.json b/data/mods/Magiclysm/monsters/vanilla_monster_damage_overwrite.json index fc086ff45697a..0c375a8d8fa62 100644 --- a/data/mods/Magiclysm/monsters/vanilla_monster_damage_overwrite.json +++ b/data/mods/Magiclysm/monsters/vanilla_monster_damage_overwrite.json @@ -1079,6 +1079,12 @@ "copy-from": "mon_star_vampire", "extend": { "flags": [ "TIMELESS" ], "armor": { "nether": 20 } } }, + { + "type": "MONSTER", + "id": "mon_star_vampire_coiling", + "copy-from": "mon_star_vampire_coiling", + "extend": { "flags": [ "TIMELESS" ], "armor": { "nether": 20 } } + }, { "type": "MONSTER", "id": "mon_unseen_hunter", diff --git a/data/mods/MindOverMatter/monstergroups/monstergroups_new.json b/data/mods/MindOverMatter/monstergroups/monstergroups_new.json index cffa3fe44aa4d..05c8ed31e0df2 100644 --- a/data/mods/MindOverMatter/monstergroups/monstergroups_new.json +++ b/data/mods/MindOverMatter/monstergroups/monstergroups_new.json @@ -78,7 +78,8 @@ { "monster": "mon_nuckalavee", "weight": 60, "cost_multiplier": 0 }, { "monster": "mon_hunting_horror", "weight": 60, "cost_multiplier": 0 }, { "monster": "mon_unseen_hunter", "weight": 60, "cost_multiplier": 2 }, - { "monster": "mon_star_vampire", "weight": 20, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire", "weight": 10, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire_coiling", "weight": 10, "cost_multiplier": 0 }, { "monster": "mon_flaming_eye", "weight": 25, "cost_multiplier": 10 }, { "monster": "mon_kreck", "weight": 60, "cost_multiplier": 5 }, { "monster": "mon_gracke", "weight": 100 }, @@ -236,7 +237,8 @@ { "monster": "mon_kreck", "weight": 210, "cost_multiplier": 0 }, { "monster": "mon_nether_eater", "weight": 120, "cost_multiplier": 0 }, { "monster": "mon_hanging_roper", "weight": 60, "cost_multiplier": 0 }, - { "monster": "mon_star_vampire", "weight": 50, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire", "weight": 25, "cost_multiplier": 0 }, + { "monster": "mon_star_vampire_coiling", "weight": 25, "cost_multiplier": 0 }, { "monster": "mon_gozu", "weight": 120, "cost_multiplier": 0 }, { "monster": "mon_darkman", "weight": 15, "cost_multiplier": 0 }, { "monster": "mon_shoggoth", "weight": 5, "cost_multiplier": 0 }