[MIRROR] Basic Pirate NPCs [MDB IGNORE] (#24654)

* Basic Pirate NPCs (#79284)

## About The Pull Request

Converts hostile pirate NPCs to basic mobs - specifically, a subtype of
trooper. As their behavior is not meaningfully distinct from other
troopers, this conversion mostly just sticks them on the existing AI
behavior while keeping the rest the same.

Pirates do have one new thing going for them, though, to differentiate
them from other troopers. They use the new **plundering attacks**
component, which means that every time they land a melee attack, they
steal money from the bank account of whoever they hit. This requires the
target to be wearing an ID with a linked bank account, so it's not the
hardest thing in the world to hide your money from them - but it's still
something to be wary of! If killed, any mob with this component will
drop everything they've stolen in a convenient holochip.
## Why It's Good For The Game

Takes down 5 more simplemobs, and (I think) converts the last remaining
trooper-type enemy to be a basic trooper. (It's possible there's more
I've forgotten that could use the same AI, though.)

The money-stealing behavior is mostly good because I think it's funny,
but it also makes the pirates something a little distinct from "yet
another mob that runs at you and punches you until you die". They still
do that, but now there's a little twist! This can be placed on other
mobs too, if we want to make any other sorts of thieves or brigands.
## Changelog
🆑
refactor: Pirate NPCs now use the basic mob framework. They'll be a
little smarter in combat, and if you're wearing your ID they'll siphon
your bank account with every melee attack! Beware! Please report any
bugs.
/🆑

* Basic Pirate NPCs

* Modular paths

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-10-31 02:17:34 -04:00
committed by GitHub
co-authored by lizardqueenlexi Giz
parent e501a5c02e
commit 0923ef2b26
14 changed files with 184 additions and 137 deletions
@@ -26,7 +26,7 @@
/area/template_noop)
"ah" = (
/obj/structure/lattice/catwalk,
/mob/living/simple_animal/hostile/pirate/ranged/space{
/mob/living/basic/trooper/pirate/ranged/space{
environment_smash = 0
},
/turf/template_noop,
@@ -587,7 +587,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/pirate/ranged/space{
/mob/living/basic/trooper/pirate/ranged/space{
environment_smash = 0
},
/turf/open/floor/iron/airless,
@@ -736,7 +736,7 @@
/area/ruin/space/has_grav)
"Fr" = (
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/pirate/ranged/space{
/mob/living/basic/trooper/pirate/ranged/space{
environment_smash = 0
},
/turf/open/floor/plating/airless,
@@ -941,7 +941,7 @@
"Nm" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/pirate/ranged/space{
/mob/living/basic/trooper/pirate/ranged/space{
environment_smash = 0
},
/turf/open/floor/iron/airless,
@@ -31,7 +31,7 @@
/area/ruin/space/has_grav/derelictconstruction)
"fa" = (
/obj/structure/lattice,
/mob/living/simple_animal/hostile/pirate/ranged/space,
/mob/living/basic/trooper/pirate/ranged/space,
/turf/template_noop,
/area/space/nearstation)
"gi" = (
@@ -416,7 +416,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/derelictconstruction)
"Za" = (
/mob/living/simple_animal/hostile/pirate/melee/space,
/mob/living/basic/trooper/pirate/melee/space,
/obj/structure/lattice/catwalk,
/turf/template_noop,
/area/ruin/space/has_grav/derelictconstruction)
@@ -250,7 +250,7 @@
/turf/open/floor/iron/smooth,
/area/ruin/space/has_grav/cargodise_freighter/utility)
"dT" = (
/mob/living/simple_animal/hostile/pirate/melee{
/mob/living/basic/trooper/pirate/melee{
faction = list("hostile")
},
/turf/open/floor/mineral/plastitanium,
@@ -2902,7 +2902,7 @@
/area/ruin/space/has_grav/cargodise_freighter/primaryhall)
"UP" = (
/obj/effect/turf_decal/trimline/blue/line,
/mob/living/simple_animal/hostile/pirate/melee{
/mob/living/basic/trooper/pirate/melee{
faction = list("hostile")
},
/turf/open/floor/iron/dark/textured_half{
@@ -171,7 +171,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"ga" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/turf/open/floor/carpet,
/area/ruin/space/has_grav/powered)
"ge" = (
@@ -340,7 +340,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"mx" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/obj/effect/turf_decal/trimline/dark_blue/filled/line{
dir = 10
},
@@ -459,7 +459,7 @@
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"pS" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/obj/effect/turf_decal/trimline/dark_red/filled/line{
dir = 8
},
@@ -665,7 +665,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"wr" = (
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/basic/trooper/pirate/ranged,
/obj/effect/turf_decal/trimline/dark_red/filled/line{
dir = 8
},
@@ -737,7 +737,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"xM" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"xV" = (
@@ -779,7 +779,7 @@
/turf/open/floor/iron/kitchen,
/area/ruin/space/has_grav/powered)
"yE" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/obj/effect/turf_decal/trimline/dark_red/filled/corner{
dir = 8
},
@@ -837,7 +837,7 @@
/turf/open/floor/carpet,
/area/ruin/space/has_grav/powered)
"AA" = (
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/basic/trooper/pirate/ranged,
/obj/effect/turf_decal/trimline/dark_red/filled/line{
dir = 4
},
@@ -944,7 +944,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"EC" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/obj/effect/turf_decal/trimline/dark_red/filled/line{
dir = 1
},
@@ -999,7 +999,7 @@
/turf/open/floor/iron/kitchen,
/area/ruin/space/has_grav/powered)
"Gc" = (
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/basic/trooper/pirate/ranged,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"Gf" = (
@@ -1096,7 +1096,7 @@
/turf/closed/wall/r_wall/syndicate,
/area/ruin/space/has_grav/powered)
"LG" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"LI" = (
@@ -1112,7 +1112,7 @@
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"Ma" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/obj/effect/turf_decal/trimline/dark_red/filled/line,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
@@ -1281,7 +1281,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/powered)
"TK" = (
/mob/living/simple_animal/hostile/pirate/ranged/space,
/mob/living/basic/trooper/pirate/ranged/space,
/turf/open/misc/asteroid/lowpressure,
/area/ruin/space)
"TO" = (
@@ -1332,7 +1332,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"UL" = (
/mob/living/simple_animal/hostile/pirate/ranged{
/mob/living/basic/trooper/pirate/ranged{
health = 200;
maxHealth = 200;
name = "Pirate Captain"
@@ -1360,11 +1360,11 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered)
"VI" = (
/mob/living/simple_animal/hostile/pirate/melee/space,
/mob/living/basic/trooper/pirate/melee/space,
/turf/open/misc/asteroid/lowpressure,
/area/ruin/space)
"VL" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/obj/effect/turf_decal/trimline/dark_red/filled/corner{
dir = 1
},
+5 -5
View File
@@ -1164,7 +1164,7 @@
/turf/open/misc/beach/coast,
/area/awaymission/mothership_astrum/deck5)
"tz" = (
/mob/living/simple_animal/hostile/pirate/ranged{
/mob/living/basic/trooper/pirate/ranged{
faction = list("Abductor")
},
/turf/open/misc/beach/sand,
@@ -1777,7 +1777,7 @@
/turf/open/floor/mineral/abductor,
/area/awaymission/mothership_astrum/halls)
"CU" = (
/mob/living/simple_animal/hostile/pirate/melee{
/mob/living/basic/trooper/pirate/melee{
faction = list("Abductor");
loot = list(/obj/effect/mob_spawn/corpse/human/pirate)
},
@@ -1844,7 +1844,7 @@
/turf/open/floor/plating/abductor,
/area/awaymission/mothership_astrum/halls)
"DE" = (
/mob/living/simple_animal/hostile/pirate/ranged{
/mob/living/basic/trooper/pirate/ranged{
faction = list("Abductor")
},
/turf/open/floor/wood,
@@ -2305,10 +2305,10 @@
},
/area/awaymission/mothership_astrum/deck1)
"IO" = (
/mob/living/simple_animal/hostile/pirate/ranged{
/mob/living/basic/trooper/pirate/ranged{
faction = list("Abductor")
},
/mob/living/simple_animal/hostile/pirate/ranged{
/mob/living/basic/trooper/pirate/ranged{
faction = list("Abductor");
health = 200
},
+3 -3
View File
@@ -75,7 +75,7 @@
/turf/open/floor/plating,
/area/shuttle/ruin/caravan/pirate)
"iN" = (
/mob/living/simple_animal/hostile/pirate/melee{
/mob/living/basic/trooper/pirate/melee{
environment_smash = 0
},
/turf/open/floor/iron,
@@ -139,7 +139,7 @@
pixel_y = -30;
req_access = null
},
/mob/living/simple_animal/hostile/pirate/ranged{
/mob/living/basic/trooper/pirate/ranged{
environment_smash = 0
},
/obj/effect/turf_decal/tile/neutral/fourcorners,
@@ -787,7 +787,7 @@
/area/shuttle/ruin/caravan/pirate)
"WV" = (
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/pirate/ranged{
/mob/living/basic/trooper/pirate/ranged{
environment_smash = 0
},
/turf/open/floor/iron,
+7 -7
View File
@@ -161,7 +161,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
/mob/living/simple_animal/hostile/pirate/ranged/space,
/mob/living/basic/trooper/pirate/ranged/space,
/turf/open/floor/carpet/blue,
/area/virtual_domain/powered)
"iO" = (
@@ -293,7 +293,7 @@
/area/virtual_domain/powered)
"nX" = (
/obj/effect/decal/cleanable/dirt/dust,
/mob/living/simple_animal/hostile/pirate/melee/space,
/mob/living/basic/trooper/pirate/melee/space,
/turf/open/floor/wood/parquet,
/area/virtual_domain/powered)
"oo" = (
@@ -342,7 +342,7 @@
},
/obj/effect/mapping_helpers/burnt_floor,
/obj/effect/decal/cleanable/dirt/dust,
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/basic/trooper/pirate/ranged,
/turf/open/floor/wood,
/area/virtual_domain/powered)
"qN" = (
@@ -385,7 +385,7 @@
/turf/open/misc/grass,
/area/virtual_domain/powered)
"to" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/turf/open/misc/grass,
/area/virtual_domain/powered)
"ub" = (
@@ -472,7 +472,7 @@
/turf/open/misc/dirt/jungle,
/area/virtual_domain/powered)
"yi" = (
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/basic/trooper/pirate/melee,
/turf/open/misc/beach/sand,
/area/virtual_domain/powered)
"yq" = (
@@ -481,7 +481,7 @@
/area/virtual_domain/powered)
"yw" = (
/obj/effect/mapping_helpers/burnt_floor,
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/basic/trooper/pirate/ranged,
/obj/structure/chair/wood,
/turf/open/floor/wood{
icon_state = "wood_large"
@@ -616,7 +616,7 @@
/area/virtual_domain/powered)
"Hp" = (
/obj/effect/turf_decal/siding/wood,
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/basic/trooper/pirate/ranged,
/turf/open/floor/wood,
/area/virtual_domain/powered)
"HY" = (
@@ -0,0 +1,54 @@
/**
* Component that makes basic mobs' melee attacks steal money from the target's ID card.
* Plundered money is stored and dropped on death or removal of the component.
*/
/datum/component/plundering_attacks
/// How many credits do we steal per attack?
var/plunder_amount = 25
/// How much plunder do we have stored?
var/plunder_stored = 0
/datum/component/plundering_attacks/Initialize(
plunder_amount = 25,
)
. = ..()
if(!isbasicmob(parent))
return COMPONENT_INCOMPATIBLE
src.plunder_amount = plunder_amount
/datum/component/plundering_attacks/RegisterWithParent()
. = ..()
RegisterSignal(parent, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(attempt_plunder))
RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(drop_plunder))
/datum/component/plundering_attacks/UnregisterFromParent()
. = ..()
UnregisterSignal(parent, list(COMSIG_HOSTILE_POST_ATTACKINGTARGET, COMSIG_LIVING_DEATH))
drop_plunder()
/datum/component/plundering_attacks/proc/attempt_plunder(mob/living/attacker, mob/living/carbon/human/target, success)
SIGNAL_HANDLER
if(!istype(target) || !success)
return
var/obj/item/card/id/id_card = target.wear_id?.GetID()
if(isnull(id_card))
return
var/datum/bank_account/account_to_rob = id_card.registered_account
if(isnull(account_to_rob) || account_to_rob.account_balance == 0)
return
var/amount_to_steal = plunder_amount
if(account_to_rob.account_balance < plunder_amount) //If there isn't enough, just take what's left
amount_to_steal = account_to_rob.account_balance
plunder_stored += amount_to_steal
account_to_rob.adjust_money(-amount_to_steal)
account_to_rob.bank_card_talk("Transaction confirmed! Transferred [amount_to_steal] credits to \<NULL_ACCOUNT\>!")
/datum/component/plundering_attacks/proc/drop_plunder()
SIGNAL_HANDLER
if(plunder_stored == 0)
return
new /obj/item/holochip(get_turf(parent), plunder_stored)
plunder_stored = 0
@@ -0,0 +1,89 @@
/// Pirate trooper subtype
/mob/living/basic/trooper/pirate
name = "Pirate"
desc = "Does what he wants cause a pirate is free."
response_help_continuous = "pushes"
response_help_simple = "push"
speed = 0
speak_emote = list("yarrs")
faction = list(FACTION_PIRATE)
loot = list(/obj/effect/mob_spawn/corpse/human/pirate)
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate
/// The amount of money to steal with a melee attack
var/plunder_credits = 25
/mob/living/basic/trooper/pirate/Initialize(mapload)
. = ..()
AddComponent(/datum/component/plundering_attacks, plunder_amount = plunder_credits)
/mob/living/basic/trooper/pirate/melee
name = "Pirate Swashbuckler"
melee_damage_lower = 30
melee_damage_upper = 30
armour_penetration = 35
attack_verb_continuous = "slashes"
attack_verb_simple = "slash"
attack_sound = 'sound/weapons/blade1.ogg'
attack_vis_effect = ATTACK_EFFECT_SLASH
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/melee)
light_range = 2
light_power = 2.5
light_color = COLOR_SOFT_RED
loot = list(
/obj/effect/mob_spawn/corpse/human/pirate/melee,
/obj/item/melee/energy/sword/pirate,
)
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/melee
r_hand = /obj/item/melee/energy/sword/pirate
plunder_credits = 50 //they hit hard so they steal more
/mob/living/basic/trooper/pirate/melee/space
name = "Space Pirate Swashbuckler"
unsuitable_atmos_damage = 0
minimum_survivable_temperature = 0
speed = 1
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/melee/space)
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/melee/space
/mob/living/basic/trooper/pirate/melee/space/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
/mob/living/basic/trooper/pirate/ranged
name = "Pirate Gunner"
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/ranged)
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/ranged
r_hand = /obj/item/gun/energy/laser
ai_controller = /datum/ai_controller/basic_controller/trooper/ranged
/// Type of bullet we use
var/casingtype = /obj/item/ammo_casing/energy/laser
/// Sound to play when firing weapon
var/projectilesound = 'sound/weapons/laser.ogg'
/// number of burst shots
var/burst_shots = 2
/// Time between taking shots
var/ranged_cooldown = 6 SECONDS
/mob/living/basic/trooper/pirate/ranged/Initialize(mapload)
. = ..()
AddComponent(\
/datum/component/ranged_attacks,\
casing_type = casingtype,\
projectile_sound = projectilesound,\
cooldown_time = ranged_cooldown,\
burst_shots = burst_shots,\
)
/mob/living/basic/trooper/pirate/ranged/space
name = "Space Pirate Gunner"
unsuitable_atmos_damage = 0
minimum_survivable_temperature = 0
speed = 1
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/ranged/space)
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/ranged/space
r_hand = /obj/item/gun/energy/e_gun/lethal
/mob/living/basic/trooper/pirate/ranged/space/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
@@ -3,8 +3,6 @@
name = "Syndicate Operative"
desc = "Death to Nanotrasen."
speed = 1.1
melee_damage_lower = 10
melee_damage_upper = 10
faction = list(ROLE_SYNDICATE)
loot = list(/obj/effect/mob_spawn/corpse/human/syndicatesoldier)
mob_spawner = /obj/effect/mob_spawn/corpse/human/syndicatesoldier
@@ -1,91 +0,0 @@
/mob/living/simple_animal/hostile/pirate
name = "Pirate"
desc = "Does what he wants cause a pirate is free."
icon = 'icons/mob/simple/simple_human.dmi'
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
sentience_type = SENTIENCE_HUMANOID
speak_chance = 0
turns_per_move = 5
response_help_continuous = "pushes"
response_help_simple = "push"
speed = 0
maxHealth = 100
health = 100
harm_intent_damage = 5
melee_damage_lower = 10
melee_damage_upper = 10
attack_verb_continuous = "punches"
attack_verb_simple = "punch"
attack_sound = 'sound/weapons/punch1.ogg'
combat_mode = TRUE
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 7.5
speak_emote = list("yarrs")
loot = list(/obj/effect/mob_spawn/corpse/human/pirate)
del_on_death = TRUE
faction = list(FACTION_PIRATE)
/// Path of the mob spawner we base the mob's visuals off of.
var/mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate
/// Path of the held item we give to the mob's visuals.
var/held_item
/mob/living/simple_animal/hostile/pirate/Initialize(mapload)
. = ..()
apply_dynamic_human_appearance(src, mob_spawn_path = mob_spawner, r_hand = held_item)
/mob/living/simple_animal/hostile/pirate/melee
name = "Pirate Swashbuckler"
melee_damage_lower = 30
melee_damage_upper = 30
armour_penetration = 35
attack_verb_continuous = "slashes"
attack_verb_simple = "slash"
attack_sound = 'sound/weapons/blade1.ogg'
attack_vis_effect = ATTACK_EFFECT_SLASH
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/melee)
light_range = 2
light_power = 2.5
light_color = COLOR_SOFT_RED
footstep_type = FOOTSTEP_MOB_SHOE
loot = list(
/obj/effect/mob_spawn/corpse/human/pirate/melee,
/obj/item/melee/energy/sword/pirate,
)
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/melee
held_item = /obj/item/melee/energy/sword/pirate
/mob/living/simple_animal/hostile/pirate/melee/space
name = "Space Pirate Swashbuckler"
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
speed = 1
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/melee/space
/mob/living/simple_animal/hostile/pirate/melee/space/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
/mob/living/simple_animal/hostile/pirate/ranged
name = "Pirate Gunner"
projectilesound = 'sound/weapons/laser.ogg'
ranged = 1
rapid = 2
rapid_fire_delay = 6
retreat_distance = 5
minimum_distance = 5
projectiletype = /obj/projectile/beam/laser
loot = list(/obj/effect/mob_spawn/corpse/human/pirate/ranged)
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/ranged
held_item = /obj/item/gun/energy/laser
/mob/living/simple_animal/hostile/pirate/ranged/space
name = "Space Pirate Gunner"
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
speed = 1
mob_spawner = /obj/effect/mob_spawn/corpse/human/pirate/ranged/space
held_item = /obj/item/gun/energy/e_gun/lethal
/mob/living/simple_animal/hostile/pirate/ranged/space/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
@@ -120,11 +120,6 @@
/mob/living/simple_animal/hostile/ooze,
/mob/living/simple_animal/hostile/ooze/gelatinous,
/mob/living/simple_animal/hostile/ooze/grapes,
/mob/living/simple_animal/hostile/pirate,
/mob/living/simple_animal/hostile/pirate/melee,
/mob/living/simple_animal/hostile/pirate/melee/space,
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/simple_animal/hostile/pirate/ranged/space,
/mob/living/simple_animal/hostile/retaliate,
/mob/living/simple_animal/hostile/retaliate/goose,
/mob/living/simple_animal/hostile/retaliate/goose/vomit,
+2 -1
View File
@@ -1161,6 +1161,7 @@
#include "code\datums\components\pellet_cloud.dm"
#include "code\datums\components\phylactery.dm"
#include "code\datums\components\pinata.dm"
#include "code\datums\components\plundering_attacks.dm"
#include "code\datums\components\pricetag.dm"
#include "code\datums\components\punchcooldown.dm"
#include "code\datums\components\puzzgrid.dm"
@@ -4675,6 +4676,7 @@
#include "code\modules\mob\living\basic\trader\trader_data.dm"
#include "code\modules\mob\living\basic\trader\trader_items.dm"
#include "code\modules\mob\living\basic\trooper\nanotrasen.dm"
#include "code\modules\mob\living\basic\trooper\pirate.dm"
#include "code\modules\mob\living\basic\trooper\russian.dm"
#include "code\modules\mob\living\basic\trooper\syndicate.dm"
#include "code\modules\mob\living\basic\trooper\trooper.dm"
@@ -4871,7 +4873,6 @@
#include "code\modules\mob\living\simple_animal\hostile\illusion.dm"
#include "code\modules\mob\living\simple_animal\hostile\mimic.dm"
#include "code\modules\mob\living\simple_animal\hostile\ooze.dm"
#include "code\modules\mob\living\simple_animal\hostile\pirate.dm"
#include "code\modules\mob\living\simple_animal\hostile\vatbeast.dm"
#include "code\modules\mob\living\simple_animal\hostile\wizard.dm"
#include "code\modules\mob\living\simple_animal\hostile\zombie.dm"
@@ -0,0 +1 @@
/mob/living/simple_animal/hostile/pirate/@SUBTYPES : /mob/living/basic/trooper/pirate/@SUBTYPES{@OLD}