From ebad3a904132e2a4b00cb770b8ee37f5aef4543a Mon Sep 17 00:00:00 2001 From: Fikou Date: Mon, 17 Feb 2020 09:24:00 +0100 Subject: [PATCH] cockroach refactor (#48836) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit About The Pull Request cockroaches are now a hostile mob and glockroaches are a child also glockroaches dont 1 shot tables and stuff anymore Why It's Good For The Game copypaste BAD?? Changelog 🆑 refactor: glockroach /🆑 --- .../map_files/Deltastation/DeltaStation2.dmm | 34 +++++------ code/game/objects/items/weaponry.dm | 2 +- code/modules/events/vent_clog.dm | 2 +- code/modules/mining/abandoned_crates.dm | 2 +- .../mob/living/simple_animal/bot/cleanbot.dm | 4 +- .../simple_animal/friendly/cockroach.dm | 60 ------------------- .../living/simple_animal/friendly/lizard.dm | 2 +- .../hostile/{glockroach.dm => cockroach.dm} | 56 ++++++++++------- .../hostile/megafauna/colossus.dm | 2 +- tgstation.dme | 3 +- 10 files changed, 60 insertions(+), 107 deletions(-) delete mode 100644 code/modules/mob/living/simple_animal/friendly/cockroach.dm rename code/modules/mob/living/simple_animal/hostile/{glockroach.dm => cockroach.dm} (75%) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index d9d84ddf783..fcaca01b29d 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2139,7 +2139,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aiE" = ( -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plating, /area/maintenance/starboard/fore) "aiF" = ( @@ -4303,7 +4303,7 @@ /area/vacant_room/office) "and" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/wood, /area/vacant_room/office) "ane" = ( @@ -5291,7 +5291,7 @@ /turf/open/floor/plasteel/grimy, /area/vacant_room/office) "apa" = ( -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plasteel/grimy, /area/vacant_room/office) "apb" = ( @@ -9117,7 +9117,7 @@ }, /area/maintenance/port/fore) "awu" = ( -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/wood, /area/maintenance/port/fore) "awv" = ( @@ -9854,7 +9854,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plating, /area/maintenance/port/fore) "axU" = ( @@ -20369,7 +20369,7 @@ "aRK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/wood{ icon_state = "wood-broken5" }, @@ -27448,7 +27448,7 @@ /turf/open/floor/engine/o2, /area/engine/atmos) "bdo" = ( -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plating, /area/maintenance/port/fore) "bdp" = ( @@ -63185,7 +63185,7 @@ dir = 4 }, /obj/structure/cable, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plating, /area/maintenance/starboard) "cnh" = ( @@ -76985,7 +76985,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plating, /area/maintenance/port) "cMV" = ( @@ -88537,7 +88537,7 @@ dir = 8 }, /obj/structure/cable, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) "dhN" = ( @@ -91483,7 +91483,7 @@ dir = 4 }, /obj/structure/cable, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) "dnN" = ( @@ -92525,7 +92525,7 @@ "dpQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) "dpR" = ( @@ -96206,7 +96206,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) "dxH" = ( @@ -102151,7 +102151,7 @@ dir = 4 }, /obj/structure/cable, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/wood, /area/crew_quarters/theatre/abandoned) "dJu" = ( @@ -102234,7 +102234,7 @@ /turf/open/floor/wood, /area/security/detectives_office/private_investigators_office) "dJE" = ( -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/wood, /area/security/detectives_office/private_investigators_office) "dJF" = ( @@ -106525,7 +106525,7 @@ dir = 4 }, /obj/structure/cable, -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/plating, /area/maintenance/port/aft) "dRH" = ( @@ -107576,7 +107576,7 @@ /turf/open/floor/plasteel/dark, /area/medical/virology) "dUc" = ( -/mob/living/simple_animal/cockroach, +/mob/living/simple_animal/hostile/cockroach, /turf/open/floor/wood, /area/library/abandoned) "dUd" = ( diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index aba03d32524..f92a60af330 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -633,7 +633,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 strong_against = typecacheof(list( /mob/living/simple_animal/hostile/poison/bees/, /mob/living/simple_animal/butterfly, - /mob/living/simple_animal/cockroach, + /mob/living/simple_animal/hostile/cockroach, /obj/item/queen_bee )) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 9c713d74af8..d947d76d33c 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -44,7 +44,7 @@ var/cockroaches = prob(33) ? 3 : 0 while(cockroaches) - new /mob/living/simple_animal/cockroach(get_turf(vent)) + new /mob/living/simple_animal/hostile/cockroach(get_turf(vent)) cockroaches-- CHECK_TICK diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 64151c75585..d3c53644096 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -204,7 +204,7 @@ new /obj/item/dnainjector/wackymut(src) if(91) for(var/i in 1 to 30) - new /mob/living/simple_animal/cockroach(src) + new /mob/living/simple_animal/hostile/cockroach(src) if(92) new /obj/item/katana(src) if(93) diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 64d235b3cdb..ba7fde151a9 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -299,7 +299,7 @@ target_types += /obj/effect/decal/cleanable/trail_holder if(pests) - target_types += /mob/living/simple_animal/cockroach + target_types += /mob/living/simple_animal/hostile/cockroach target_types += /mob/living/simple_animal/mouse if(drawn) @@ -333,7 +333,7 @@ playsound(src, 'sound/effects/spray2.ogg', 50, TRUE, -6) A.acid_act(75, 10) target = null - else if(istype(A, /mob/living/simple_animal/cockroach) || istype(A, /mob/living/simple_animal/mouse)) + else if(istype(A, /mob/living/simple_animal/hostile/cockroach) || istype(A, /mob/living/simple_animal/mouse)) var/mob/living/simple_animal/M = target if(!M.stat) visible_message("[src] smashes [target] with its mop!") diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm deleted file mode 100644 index 288e642b36d..00000000000 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ /dev/null @@ -1,60 +0,0 @@ -/mob/living/simple_animal/cockroach - name = "cockroach" - desc = "This station is just crawling with bugs." - icon_state = "cockroach" - icon_dead = "cockroach" - health = 1 - maxHealth = 1 - turns_per_move = 5 - loot = list(/obj/effect/decal/cleanable/insectguts) - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 270 - maxbodytemp = INFINITY - pass_flags = PASSTABLE | PASSGRILLE | PASSMOB - mob_size = MOB_SIZE_TINY - mob_biotypes = MOB_ORGANIC|MOB_BUG - response_disarm_continuous = "shoos" - response_disarm_simple = "shoo" - response_harm_continuous = "splats" - response_harm_simple = "splat" - speak_emote = list("chitters") - density = FALSE - ventcrawler = VENTCRAWLER_ALWAYS - gold_core_spawnable = FRIENDLY_SPAWN - verb_say = "chitters" - verb_ask = "chitters inquisitively" - verb_exclaim = "chitters loudly" - verb_yell = "chitters loudly" - var/squish_chance = 50 - del_on_death = 1 - -/mob/living/simple_animal/cockroach/death(gibbed) - if(SSticker.mode && SSticker.mode.station_was_nuked) //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes. - return - ..() - -/mob/living/simple_animal/cockroach/Crossed(var/atom/movable/AM) - if(ismob(AM)) - if(isliving(AM)) - var/mob/living/A = AM - if(A.mob_size > MOB_SIZE_SMALL && !(A.movement_type & FLYING)) - if(prob(squish_chance)) - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(HAS_TRAIT(H, TRAIT_PACIFISM)) - H.visible_message("[src] avoids getting crushed.", "You avoid crushing [src]!") - return - A.visible_message("[A] crushes [src].", "You crushed [src].") - adjustBruteLoss(1) //kills a normal cockroach - else - visible_message("[src] avoids getting crushed.") - else - if(isstructure(AM)) - if(prob(squish_chance)) - AM.visible_message("[src] was crushed under [AM].") - adjustBruteLoss(1) - else - visible_message("[src] avoids getting crushed.") - -/mob/living/simple_animal/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach. - return diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index c03041a1781..7aaf339d185 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -26,7 +26,7 @@ gold_core_spawnable = FRIENDLY_SPAWN obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly, /mob/living/simple_animal/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption. + var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly, /mob/living/simple_animal/hostile/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption. /mob/living/simple_animal/hostile/lizard/CanAttack(atom/the_target)//Can we actually attack a possible target? if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it diff --git a/code/modules/mob/living/simple_animal/hostile/glockroach.dm b/code/modules/mob/living/simple_animal/hostile/cockroach.dm similarity index 75% rename from code/modules/mob/living/simple_animal/hostile/glockroach.dm rename to code/modules/mob/living/simple_animal/hostile/cockroach.dm index 495c6df2b42..11eb42c25b6 100644 --- a/code/modules/mob/living/simple_animal/hostile/glockroach.dm +++ b/code/modules/mob/living/simple_animal/hostile/cockroach.dm @@ -1,16 +1,7 @@ -/obj/projectile/glockroachbullet - damage = 10 //same damage as a hivebot - damage_type = BRUTE - -/obj/item/ammo_casing/glockroach - name = "0.9mm bullet casing" - desc = "A... 0.9mm bullet casing? What?" - projectile_type = /obj/projectile/glockroachbullet - -/mob/living/simple_animal/hostile/glockroach //copypasted from cockroach.dm so i could use the shooting code in hostile.dm - name = "glockroach" - desc = "HOLY SHIT, THAT COCKROACH HAS A GUN!" - icon_state = "glockroach" +/mob/living/simple_animal/hostile/cockroach + name = "cockroach" + desc = "This station is just crawling with bugs." + icon_state = "cockroach" icon_dead = "cockroach" health = 1 maxHealth = 1 @@ -28,25 +19,49 @@ response_harm_simple = "splat" speak_emote = list("chitters") density = FALSE + melee_damage_lower = 0 + melee_damage_upper = 0 + obj_damage = 0 ventcrawler = VENTCRAWLER_ALWAYS - gold_core_spawnable = HOSTILE_SPAWN + gold_core_spawnable = FRIENDLY_SPAWN verb_say = "chitters" verb_ask = "chitters inquisitively" verb_exclaim = "chitters loudly" verb_yell = "chitters loudly" + del_on_death = TRUE + environment_smash = ENVIRONMENT_SMASH_NONE + faction = list("neutral") + var/squish_chance = 50 + +/obj/projectile/glockroachbullet + damage = 10 //same damage as a hivebot + damage_type = BRUTE + +/obj/item/ammo_casing/glockroach + name = "0.9mm bullet casing" + desc = "A... 0.9mm bullet casing? What?" + projectile_type = /obj/projectile/glockroachbullet + +/mob/living/simple_animal/hostile/cockroach/glockroach + name = "glockroach" + desc = "HOLY SHIT, THAT COCKROACH HAS A GUN!" + icon_state = "glockroach" + melee_damage_lower = 5 + melee_damage_upper = 5 + obj_damage = 20 + gold_core_spawnable = HOSTILE_SPAWN projectilesound = 'sound/weapons/gun/pistol/shot.ogg' projectiletype = /obj/projectile/glockroachbullet casingtype = /obj/item/ammo_casing/glockroach - ranged = 1 - var/squish_chance = 50 - del_on_death = 1 + ranged = TRUE + faction = list("hostile") -/mob/living/simple_animal/hostile/glockroach/death(gibbed) +/mob/living/simple_animal/hostile/cockroach/death(gibbed) if(SSticker.mode && SSticker.mode.station_was_nuked) //If the nuke is going off, then cockroaches are invincible. Keeps the nuke from killing them, cause cockroaches are immune to nukes. return ..() -/mob/living/simple_animal/hostile/glockroach/Crossed(var/atom/movable/AM) +/mob/living/simple_animal/hostile/cockroach/Crossed(var/atom/movable/AM) if(ismob(AM)) if(isliving(AM)) var/mob/living/A = AM @@ -64,6 +79,5 @@ else visible_message("[src] avoids getting crushed.") -/mob/living/simple_animal/hostile/glockroach/ex_act() //Explosions are a terrible way to handle a cockroach. +/mob/living/simple_animal/hostile/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach. return - diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index a98b9815d21..954cd200999 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -733,7 +733,7 @@ Difficulty: Very Hard mobcheck = TRUE break if(!mobcheck) - new /mob/living/simple_animal/cockroach(get_step(src,dir)) //Just in case there aren't any animals on the station, this will leave you with a terrible option to possess if you feel like it + new /mob/living/simple_animal/hostile/cockroach(get_step(src,dir)) //Just in case there aren't any animals on the station, this will leave you with a terrible option to possess if you feel like it //i found it funny that in the file for a giant angel beast theres a cockroach /obj/structure/closet/stasis name = "quantum entanglement stasis warp field" diff --git a/tgstation.dme b/tgstation.dme index 59e43550e11..f1de9a2dc58 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2236,7 +2236,6 @@ #include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm" #include "code\modules\mob\living\simple_animal\friendly\butterfly.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm" -#include "code\modules\mob\living\simple_animal\friendly\cockroach.dm" #include "code\modules\mob\living\simple_animal\friendly\crab.dm" #include "code\modules\mob\living\simple_animal\friendly\dog.dm" #include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" @@ -2274,11 +2273,11 @@ #include "code\modules\mob\living\simple_animal\hostile\bees.dm" #include "code\modules\mob\living\simple_animal\hostile\carp.dm" #include "code\modules\mob\living\simple_animal\hostile\cat_butcher.dm" +#include "code\modules\mob\living\simple_animal\hostile\cockroach.dm" #include "code\modules\mob\living\simple_animal\hostile\dark_wizard.dm" #include "code\modules\mob\living\simple_animal\hostile\eyeballs.dm" #include "code\modules\mob\living\simple_animal\hostile\faithless.dm" #include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" -#include "code\modules\mob\living\simple_animal\hostile\glockroach.dm" #include "code\modules\mob\living\simple_animal\hostile\goose.dm" #include "code\modules\mob\living\simple_animal\hostile\headcrab.dm" #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm"