diff --git a/data/json/monsters/nether.json b/data/json/monsters/nether.json index 5eaba60a0b0a3..a58b082c2db97 100644 --- a/data/json/monsters/nether.json +++ b/data/json/monsters/nether.json @@ -1546,7 +1546,7 @@ "speed": 75, "bleed_rate": 0, "special_attacks": [ - [ "TENTACLE", 2 ], + { "id": "tentacle", "cooldown": 2 }, { "type": "spell", "spell_data": { "id": "create_noise", "hit_self": true }, diff --git a/data/mods/Aftershock/mobs/water_mobs.json b/data/mods/Aftershock/mobs/water_mobs.json index 67985cbc35eeb..2711c3164d1c7 100644 --- a/data/mods/Aftershock/mobs/water_mobs.json +++ b/data/mods/Aftershock/mobs/water_mobs.json @@ -29,7 +29,7 @@ "special_attacks": [ [ "PARROT", 0 ], { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 19, "armor_multiplier": 0.8 } ] }, - [ "TENTACLE", 5 ] + { "id": "tentacle", "cooldown": 5 } ], "flags": [ "SEES", @@ -78,7 +78,7 @@ "special_attacks": [ [ "PARROT", 0 ], { "id": "scratch", "damage_max_instance": [ { "damage_type": "cut", "amount": 16, "armor_multiplier": 0.8 } ] }, - [ "TENTACLE", 5 ], + { "id": "tentacle", "cooldown": 5 }, { "type": "spell", "spell_data": { "id": "mi-go_slaver_beam", "min_level": 1 }, "cooldown": 400 } ], "flags": [ diff --git a/data/mods/Aftershock/mobs/zombies.json b/data/mods/Aftershock/mobs/zombies.json index dc4cc0c747fbe..c1d938e4c1196 100644 --- a/data/mods/Aftershock/mobs/zombies.json +++ b/data/mods/Aftershock/mobs/zombies.json @@ -255,7 +255,7 @@ "death_drops": "default_moxie_human_death_drops", "grab_strength": 20, "special_attacks": [ - [ "LONGSWIPE", 20 ], + { "id": "longswipe", "cooldown": 20 }, { "id": "grab", "cooldown": 20 }, { "id": "scratch", @@ -451,7 +451,7 @@ "harvest": "alien_moxphore", "grab_strength": 50, "special_attacks": [ - [ "LONGSWIPE", 20 ], + { "id": "longswipe", "cooldown": 20 }, { "id": "grab", "cooldown": 20 }, { "id": "scratch", diff --git a/data/mods/DinoMod/monsters/dinosaur.json b/data/mods/DinoMod/monsters/dinosaur.json index b2ad70918a887..4d1a06e6d8afa 100644 --- a/data/mods/DinoMod/monsters/dinosaur.json +++ b/data/mods/DinoMod/monsters/dinosaur.json @@ -816,7 +816,7 @@ "reproduction": { "baby_egg": "egg_therizinosaurus", "baby_count": 3, "baby_timer": 9 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "special_attacks": [ [ "EAT_CROP", 20 ], [ "BROWSE", 50 ], [ "LONGSWIPE", 20 ] ], + "special_attacks": [ [ "EAT_CROP", 20 ], [ "BROWSE", 50 ], { "id": "longswipe", "cooldown": 20 } ], "petfood": { "food": [ "DINOFOOD_C" ] }, "flags": [ "SEES", @@ -870,7 +870,7 @@ "reproduction": { "baby_egg": "egg_nothronychus", "baby_count": 3, "baby_timer": 9 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 1 }, - "special_attacks": [ [ "EAT_CROP", 30 ], [ "BROWSE", 50 ], [ "LONGSWIPE", 25 ] ], + "special_attacks": [ [ "EAT_CROP", 30 ], [ "BROWSE", 50 ], { "id": "longswipe", "cooldown": 25 } ], "petfood": { "food": [ "DINOFOOD_C" ] }, "flags": [ "SEES", @@ -923,7 +923,7 @@ "reproduction": { "baby_egg": "egg_anzu", "baby_count": 3, "baby_timer": 9 }, "baby_flags": [ "SPRING", "SUMMER" ], "biosignature": { "biosig_item": "feces_dino", "biosig_timer": 4 }, - "special_attacks": [ [ "EAT_CROP", 30 ], [ "BROWSE", 50 ], [ "LONGSWIPE", 25 ] ], + "special_attacks": [ [ "EAT_CROP", 30 ], [ "BROWSE", 50 ], { "id": "longswipe", "cooldown": 25 } ], "flags": [ "SEES", "SMELLS", diff --git a/data/mods/DinoMod/monsters/fungus.json b/data/mods/DinoMod/monsters/fungus.json index 99b341412936b..9c79bb7b7351c 100644 --- a/data/mods/DinoMod/monsters/fungus.json +++ b/data/mods/DinoMod/monsters/fungus.json @@ -387,7 +387,7 @@ "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], [ "LONGSWIPE", 20 ] ], + "special_attacks": [ [ "FUNGUS", 200 ], { "id": "longswipe", "cooldown": 20 } ], "upgrades": false, "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "WARM", "BASHES", "DESTROYS" ] }, @@ -406,7 +406,7 @@ "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], [ "LONGSWIPE", 30 ] ], + "special_attacks": [ [ "FUNGUS", 200 ], { "id": "longswipe", "cooldown": 30 } ], "upgrades": false, "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "WARM", "BASHES" ] }, @@ -425,7 +425,7 @@ "bleed_rate": 0, "vision_day": 5, "vision_night": 5, - "special_attacks": [ [ "FUNGUS", 200 ], [ "LONGSWIPE", 30 ] ], + "special_attacks": [ [ "FUNGUS", 200 ], { "id": "longswipe", "cooldown": 30 } ], "upgrades": false, "flags": [ "SEES", "SMELLS", "HEARS", "POISON", "STUMBLES", "NO_BREATHE", "FILTHY", "WARM", "BASHES" ] }, diff --git a/data/mods/DinoMod/monsters/zed-dinosaur.json b/data/mods/DinoMod/monsters/zed-dinosaur.json index 317695dc53187..da9ae8e8ab0d3 100644 --- a/data/mods/DinoMod/monsters/zed-dinosaur.json +++ b/data/mods/DinoMod/monsters/zed-dinosaur.json @@ -328,7 +328,7 @@ { "id": "teeth_zino_mid", "cooldown": 5 }, [ "scratch", 20 ], [ "LUNGE", 5 ], - [ "LONGSWIPE", 25 ] + { "id": "longswipe", "cooldown": 25 } ], "description": "Massive jaws drooling black liquid, lifted over grasping claws by a huge shuffling dinosaur corpse.", "burn_into": "mon_zalbertosaurus_scorched", @@ -539,7 +539,7 @@ { "id": "grab" }, { "id": "scratch_humanoid", "cooldown": 10 }, { "type": "bite", "cooldown": 10 }, - [ "LONGSWIPE", 20 ] + { "id": "longswipe", "cooldown": 20 } ], "description": "The shuffling corpse of a huge bipedal dinosaur covered with tattered feathers and black putrid liquid. Long claws protrude from its hands.", "burn_into": "mon_zerizinosaurus_scorched", @@ -566,7 +566,7 @@ { "id": "grab" }, { "id": "scratch_humanoid", "cooldown": 10 }, { "type": "bite", "cooldown": 10 }, - [ "LONGSWIPE", 30 ] + { "id": "longswipe", "cooldown": 30 } ], "description": "The shuffling corpse of a large-sized bipedal dinosaur covered with tattered feathers and black putrid liquid. Sharp curved claws protrude from its hands.", "burn_into": "mon_zothronychus_scorched", @@ -592,7 +592,7 @@ { "id": "grab" }, { "id": "scratch_humanoid", "cooldown": 10 }, { "type": "bite", "cooldown": 20 }, - [ "LONGSWIPE", 30 ] + { "id": "longswipe", "cooldown": 30 } ], "description": "The shuffling corpse of a large bipedal dinosaur covered with tattered feathers and black putrid liquid. Long claws protrude from its hands.", "burn_into": "mon_zanzu_scorched", diff --git a/data/mods/DinoMod/monsters/zinosaur_upgrade.json b/data/mods/DinoMod/monsters/zinosaur_upgrade.json index 2d4967ae42eff..8d1282853b713 100644 --- a/data/mods/DinoMod/monsters/zinosaur_upgrade.json +++ b/data/mods/DinoMod/monsters/zinosaur_upgrade.json @@ -2014,7 +2014,7 @@ { "id": "bite_grab", "cooldown": 7 }, [ "scratch", 20 ], [ "LUNGE", 5 ], - [ "LONGSWIPE", 25 ] + { "id": "longswipe", "cooldown": 25 } ], "burn_into": "mon_zalbertosaurus_scorched", "fungalize_into": "mon_zalbertosaurus_fungus", @@ -2218,7 +2218,7 @@ "melee_dice": 3, "melee_dice_sides": 6, "hp": 320, - "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 10 }, [ "LONGSWIPE", 20 ] ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 10 }, { "id": "longswipe", "cooldown": 20 } ], "burn_into": "mon_zerizinosaurus_scorched", "fungalize_into": "mon_zerizinosaurus_fungus", "categories": [ "DINOSAUR" ] @@ -2238,7 +2238,7 @@ "melee_dice": 4, "melee_dice_sides": 4, "hp": 160, - "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 }, { "id": "longswipe", "cooldown": 30 } ], "burn_into": "mon_zothronychus_scorched", "fungalize_into": "mon_zothronychus_fungus", "categories": [ "DINOSAUR" ], @@ -2258,7 +2258,7 @@ "melee_dice": 4, "melee_dice_sides": 4, "hp": 120, - "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 }, [ "LONGSWIPE", 30 ] ], + "special_attacks": [ [ "scratch", 10 ], { "id": "bite_grab" }, { "type": "bite", "cooldown": 5 }, { "id": "longswipe", "cooldown": 30 } ], "burn_into": "mon_zanzu_scorched", "fungalize_into": "mon_zanzu_fungus", "categories": [ "DINOSAUR" ], @@ -3172,7 +3172,7 @@ { "id": "bite_grab", "cooldown": 7 }, [ "scratch", 20 ], [ "LUNGE", 5 ], - [ "LONGSWIPE", 25 ] + { "id": "longswipe", "cooldown": 25 } ] }, { diff --git a/src/monattack.cpp b/src/monattack.cpp index b526fdfa715b7..57c539ba8919d 100644 --- a/src/monattack.cpp +++ b/src/monattack.cpp @@ -125,7 +125,6 @@ static const efftype_id effect_grabbed( "grabbed" ); static const efftype_id effect_grabbing( "grabbing" ); static const efftype_id effect_grown_of_fuse( "grown_of_fuse" ); static const efftype_id effect_has_bag( "has_bag" ); -static const efftype_id effect_infected( "infected" ); static const efftype_id effect_laserlocked( "laserlocked" ); static const efftype_id effect_onfire( "onfire" ); static const efftype_id effect_operating( "operating" ); @@ -2311,61 +2310,6 @@ bool mattack::fungus_fortify( monster *z ) return true; } -bool mattack::impale( monster *z ) -{ - if( !z->can_act() ) { - return false; - } - Creature *target = z->attack_target(); - if( target == nullptr || !z->is_adjacent( target, false ) ) { - return false; - } - - z->mod_moves( -to_moves( 1_seconds ) * 0.8 ); - - bodypart_id hit = bodypart_id( "torso" ); - damage_instance dam_inst = damage_instance( damage_stab, rng( 10, 20 ), rng( 5, 15 ), .5 ); - - if( target->dodge_check( z, hit, dam_inst ) ) { - game_message_type msg_type = target->is_avatar() ? m_warning : m_info; - target->add_msg_player_or_npc( msg_type, _( "The %s lunges at you, but you dodge!" ), - _( "The %s lunges at , but they dodge!" ), - z->name() ); - - target->on_dodge( z, z->type->melee_skill * 2 ); - return true; - } - - target->block_hit( z, hit, dam_inst ); - - int dam = target->deal_damage( z, hit, dam_inst ).total_damage(); - if( dam > 0 ) { - game_message_type msg_type = target->is_avatar() ? m_bad : m_info; - target->add_msg_player_or_npc( msg_type, - //~ 1$s is monster name, 2$s bodypart in accusative - _( "The %1$s impales your torso!" ), - //~ 1$s is monster name, 2$s bodypart in accusative - _( "The %1$s impales 's torso!" ), - z->name() ); - - target->on_hit( z, bodypart_id( "torso" ), z->type->melee_skill ); - if( rng( 0, 200 + dam ) > 100 ) { - target->add_effect( effect_downed, 3_turns ); - } - z->mod_moves( -to_moves( 1_seconds ) * - 0.8 ); //Takes extra time for the creature to pull out the protrusion - } else { - target->add_msg_player_or_npc( - _( "The %1$s tries to impale your torso, but fails to penetrate your armor!" ), - _( "The %1$s tries to impale 's torso, but fails to penetrate their armor!" ), - z->name() ); - } - - target->check_dead_state(); - - return true; -} - bool mattack::dermatik( monster *z ) { if( !z->can_act() ) { @@ -2801,62 +2745,6 @@ bool mattack::dogthing( monster *z ) return false; } -bool mattack::tentacle( monster *z ) -{ - if( z->friendly ) { - // TODO: handle friendly monsters - return false; - } - Creature *target = z->attack_target(); - - // Can't see/reach target, no attack - if( target == nullptr || rl_dist( z->pos(), target->pos() ) > 3 || !z->sees( *target ) || - !get_map().clear_path( z->pos(), target->pos(), 3, 1, 100 ) ) { - return false; - } - game_message_type msg_type = target->is_avatar() ? m_bad : m_info; - target->add_msg_player_or_npc( msg_type, - _( "The %s lashes its tentacle at you!" ), - _( "The %s lashes its tentacle at !" ), - z->name() ); - z->mod_moves( -to_moves( 1_seconds ) ); - - bodypart_id hit = target->get_random_body_part(); - damage_instance dam_inst = damage_instance( damage_bash, rng( 10, 20 ) ); - - // Can we dodge the attack? Uses player dodge function % chance (melee.cpp) - if( target->dodge_check( z, hit, dam_inst ) ) { - target->add_msg_player_or_npc( _( "You dodge it!" ), - _( " dodges it!" ) ); - target->on_dodge( z, z->type->melee_skill ); - return true; - } - - target->block_hit( z, hit, dam_inst ); - - int dam = target->deal_damage( z, hit, dam_inst ).total_damage(); - if( dam > 0 ) { - target->add_msg_player_or_npc( msg_type, - //~ 1$s is bodypart name, 2$d is damage value. - _( "Your %1$s is hit for %2$d damage!" ), - //~ 1$s is bodypart name, 2$d is damage value. - _( "'s %1$s is hit for %2$d damage!" ), - body_part_name( hit ), - dam ); - } else { - target->add_msg_player_or_npc( - _( "The %1$s lashes its tentacle at your %2$s, but glances off your armor!" ), - _( "The %1$s lashes its tentacle at 's %2$s, but glances off their armor!" ), - z->name(), - body_part_name_accusative( hit ) ); - } - - target->on_hit( z, hit, z->type->melee_skill ); - target->check_dead_state(); - - return true; -} - bool mattack::gene_sting( monster *z ) { const float range = 7.0f; @@ -4125,91 +4013,6 @@ bool mattack::breathe( monster *z ) return true; } -bool mattack::stretch_bite( monster *z ) -{ - if( !z->can_act() ) { - return false; - } - - // Let it be used on non-player creatures - // can be used at close range too! - Creature *target = z->attack_target(); - if( target == nullptr ) { - return false; - } - int distance = rl_dist( z->pos(), target->pos() ); - // Hack, only allow attacking above or below if the target is adjacent. - if( z->pos().z != target->pos().z ) { - distance += 2; - } - if( distance > 3 || !z->sees( *target ) ) { - return false; - } - - z->mod_moves( -to_moves( 1_seconds ) * 1.5 ); - - map &here = get_map(); - for( tripoint &pnt : here.find_clear_path( z->pos(), target->pos() ) ) { - if( here.impassable( pnt ) ) { - z->add_effect( effect_stunned, 6_turns ); - target->add_msg_player_or_npc( _( "The %1$s stretches its head at you, but bounces off the %2$s" ), - _( "The %1$s stretches its head at , but bounces off the %2$s" ), - z->name(), here.obstacle_name( pnt ) ); - return true; - } - } - - bodypart_id hit = target->get_random_body_part(); - damage_instance dam_inst = damage_instance( damage_stab, rng( 5, 15 ) ); - - // Can we dodge the attack? Uses player dodge function % chance (melee.cpp) - if( target->dodge_check( z, hit, dam_inst ) ) { - z->mod_moves( -to_moves( 1_seconds ) * 1.5 ); - z->add_effect( effect_stunned, 3_turns ); - game_message_type msg_type = target->is_avatar() ? m_warning : m_info; - target->add_msg_player_or_npc( msg_type, - _( "The %s's head extends to bite you, but you dodge and the head sails past!" ), - _( "The %s's head extends to bite , but they dodge and the head sails past!" ), - z->name() ); - - target->on_dodge( z, z->type->melee_skill * 2 ); - return true; - } - - target->block_hit( z, hit, dam_inst ); - - int dam = target->deal_damage( z, hit, dam_inst ).total_damage(); - if( dam > 0 ) { - game_message_type msg_type = target->is_avatar() ? m_bad : m_info; - target->add_msg_player_or_npc( msg_type, - //~ 1$s is monster name, 2$s bodypart in accusative - _( "The %1$s's teeth sink into your %2$s!" ), - //~ 1$s is monster name, 2$s bodypart in accusative - _( "The %1$s's teeth sink into 's %2$s!" ), - z->name(), - body_part_name_accusative( hit ) ); - - if( !hit->has_flag( json_flag_BIONIC_LIMB ) && one_in( 16 - dam ) ) { - if( target->has_effect( effect_bite, hit.id() ) ) { - target->add_effect( effect_bite, 40_minutes, hit, true ); - } else if( target->has_effect( effect_infected, hit.id() ) ) { - target->add_effect( effect_infected, 25_minutes, hit, true ); - } else { - target->add_effect( effect_bite, 1_turns, hit, true ); - } - } - } else { - target->add_msg_player_or_npc( _( "The %1$s's head hits your %2$s, but glances off your armor!" ), - _( "The %1$s's head hits 's %2$s, but glances off armor!" ), - z->name(), - body_part_name_accusative( hit ) ); - } - - target->on_hit( z, hit, z->type->melee_skill ); - - return true; -} - bool mattack::brandish( monster *z ) { if( z->friendly ) { @@ -4417,117 +4220,6 @@ bool mattack::lunge( monster *z ) return true; } -bool mattack::longswipe( monster *z ) -{ - if( z->friendly ) { - // TODO: handle friendly monsters - return false; - } - Creature *target = z->attack_target(); - if( target == nullptr ) { - return false; - } - // Out of range - int distance = rl_dist( z->pos(), target->pos() ); - // Hack, only allow attacking above or below if the target is adjacent. - if( z->pos().z != target->pos().z ) { - distance += 2; - } - if( distance > 3 || !z->sees( *target ) ) { - return false; - } - map &here = get_map(); - //Is there something impassable blocking the claw? - for( const tripoint &pnt : here.find_clear_path( z->pos(), target->pos() ) ) { - if( here.impassable( pnt ) ) { - //If we're here, it's an nonadjacent attack, which is only attempted 1/5 of the time. - if( !one_in( 5 ) ) { - return false; - } - target->add_msg_player_or_npc( _( "The %1$s thrusts a claw at you, but it bounces off the %2$s!" ), - _( "The %1$s thrusts a claw at , but it bounces off the %2$s!" ), - z->name(), here.obstacle_name( pnt ) ); - z->mod_moves( -150 ); - return true; - } - } - - if( !z->is_adjacent( target, true ) ) { - if( one_in( 5 ) ) { - - z->mod_moves( -to_moves( 1_seconds ) * 1.5 ); - - bodypart_id hit = target->get_random_body_part(); - damage_instance dam_inst = damage_instance( damage_cut, rng( 3, 7 ) ); - - // Can we dodge the attack? Uses player dodge function % chance (melee.cpp) - if( target->dodge_check( z, hit, dam_inst ) ) { - target->add_msg_player_or_npc( _( "The %s thrusts a claw at you, but you evade it!" ), - _( "The %s thrusts a claw at , but they evade it!" ), - z->name() ); - target->on_dodge( z, z->type->melee_skill ); - return true; - } - - target->block_hit( z, hit, dam_inst ); - - int dam = target->deal_damage( z, hit, dam_inst ).total_damage(); - if( dam > 0 ) { - game_message_type msg_type = target->is_avatar() ? m_bad : m_warning; - target->add_msg_player_or_npc( msg_type, - //~ 1$s is bodypart name, 2$d is damage value. - _( "The %1$s thrusts a claw at your %2$s, slashing it for %3$d damage!" ), - //~ 1$s is bodypart name, 2$d is damage value. - _( "The %1$s thrusts a claw at 's %2$s, slashing it for %3$d damage!" ), - z->name(), body_part_name( hit ), dam ); - } else { - target->add_msg_player_or_npc( - _( "The %1$s thrusts a claw at your %2$s, but glances off your armor!" ), - _( "The %1$s thrusts a claw at 's %2$s, but glances off armor!" ), - z->name(), - body_part_name_accusative( hit ) ); - } - target->on_hit( z, hit, z->type->melee_skill ); - return true; - } - return false; - } - z->mod_moves( -to_moves( 1_seconds ) ); - - bodypart_id hit = bodypart_id( "head" ); - damage_instance dam_inst = damage_instance( damage_cut, rng( 6, 10 ) ); - - // Can we dodge the attack? Uses player dodge function % chance (melee.cpp) - if( target->dodge_check( z, hit, dam_inst ) ) { - target->add_msg_player_or_npc( _( "The %s slashes at your neck! You duck!" ), - _( "The %s slashes at 's neck! They duck!" ), z->name() ); - target->on_dodge( z, z->type->melee_skill ); - return true; - } - - target->block_hit( z, hit, dam_inst ); - - int dam = target->deal_damage( z, hit, dam_inst ).total_damage(); - if( dam > 0 ) { - game_message_type msg_type = target->is_avatar() ? m_bad : m_warning; - target->add_msg_player_or_npc( msg_type, - _( "The %1$s slashes at your neck, cutting your throat for %2$d damage!" ), - _( "The %1$s slashes at 's neck, cutting their throat for %2$d damage!" ), - z->name(), dam ); - target->add_effect( effect_source( z ), effect_bleed, 15_minutes, - target->get_random_body_part_of_type( body_part_type::type::head ) ); - } else { - target->add_msg_player_or_npc( _( "The %1$s slashes at your %2$s, but glances off your armor!" ), - _( "The %1$s slashes at 's %2$s, but glances off armor!" ), - z->name(), - body_part_name_accusative( bodypart_id( "head" ) ) ); - } - target->on_hit( z, bodypart_id( "head" ), z->type->melee_skill ); - target->check_dead_state(); - - return true; -} - bool mattack::blow_whistle( monster *z ) { if( z->friendly ) { diff --git a/src/monattack.h b/src/monattack.h index 23f4608605cfa..ed5cfe5211416 100644 --- a/src/monattack.h +++ b/src/monattack.h @@ -45,7 +45,6 @@ bool fungus_bristle( monster *z ); // Fungal hedgerow rake & inject bool fungus_growth( monster *z ); // Sporeling -> fungal creature bool fungus_sprout( monster *z ); // Grow fungal walls bool fungus_fortify( monster *z ); // Grow fungal hedgerows -bool impale( monster *z ); bool dermatik( monster *z ); bool dermatik_growth( monster *z ); bool fungal_trail( monster *z ); @@ -57,7 +56,6 @@ bool callblobs( monster *z ); bool jackson( monster *z ); bool dance( monster *z ); bool dogthing( monster *z ); -bool tentacle( monster *z ); bool vortex( monster *z ); bool gene_sting( monster *z ); bool para_sting( monster *z ); @@ -83,7 +81,6 @@ bool brandish( monster *z ); bool flesh_golem( monster *z ); bool absorb_meat( monster *z ); bool lunge( monster *z ); -bool longswipe( monster *z ); bool parrot( monster *z ); bool parrot_at_danger( monster *parrot ); bool darkman( monster *z ); @@ -100,7 +97,6 @@ bool bio_op_disarm( monster *z ); bool suicide( monster *z ); bool riotbot( monster *z ); bool stretch_attack( monster *z ); -bool stretch_bite( monster *z ); bool kamikaze( monster *z ); bool grenadier( monster *z ); bool grenadier_elite( monster *z ); diff --git a/src/monstergenerator.cpp b/src/monstergenerator.cpp index e4bffa0df3299..3a9e54610df7e 100644 --- a/src/monstergenerator.cpp +++ b/src/monstergenerator.cpp @@ -626,7 +626,6 @@ void MonsterGenerator::init_attack() add_hardcoded_attack( "JACKSON", mattack::jackson ); add_hardcoded_attack( "DANCE", mattack::dance ); add_hardcoded_attack( "DOGTHING", mattack::dogthing ); - add_hardcoded_attack( "TENTACLE", mattack::tentacle ); add_hardcoded_attack( "GENE_STING", mattack::gene_sting ); add_hardcoded_attack( "PARA_STING", mattack::para_sting ); add_hardcoded_attack( "TRIFFID_GROWTH", mattack::triffid_growth ); @@ -642,12 +641,10 @@ void MonsterGenerator::init_attack() add_hardcoded_attack( "GENERATOR", mattack::generator ); add_hardcoded_attack( "UPGRADE", mattack::upgrade ); add_hardcoded_attack( "BREATHE", mattack::breathe ); - add_hardcoded_attack( "IMPALE", mattack::impale ); add_hardcoded_attack( "BRANDISH", mattack::brandish ); add_hardcoded_attack( "FLESH_GOLEM", mattack::flesh_golem ); add_hardcoded_attack( "ABSORB_MEAT", mattack::absorb_meat ); add_hardcoded_attack( "LUNGE", mattack::lunge ); - add_hardcoded_attack( "LONGSWIPE", mattack::longswipe ); add_hardcoded_attack( "PARROT", mattack::parrot ); add_hardcoded_attack( "PARROT_AT_DANGER", mattack::parrot_at_danger ); add_hardcoded_attack( "BLOW_WHISTLE", mattack::blow_whistle ); @@ -668,7 +665,6 @@ void MonsterGenerator::init_attack() add_hardcoded_attack( "GRENADIER_ELITE", mattack::grenadier_elite ); add_hardcoded_attack( "RIOTBOT", mattack::riotbot ); add_hardcoded_attack( "STRETCH_ATTACK", mattack::stretch_attack ); - add_hardcoded_attack( "STRETCH_BITE", mattack::stretch_bite ); add_hardcoded_attack( "DOOT", mattack::doot ); add_hardcoded_attack( "DSA_DRONE_SCAN", mattack::dsa_drone_scan ); add_hardcoded_attack( "ZOMBIE_FUSE", mattack::zombie_fuse );