Skyrat Basic Mobs: Malfunctioning Borgs (#5045)

## About The Pull Request
I finally got around to going through the list of 'Grab Bag Simple
Mobs', first up on the list is the 'Evil Borgs' which have been renamed
to 'Malf Borgs'. They didn't get any cool new abilities like that one
/tg/ coder does when they re-do mobs, but they're passible now, and not
clogging up the list.
## Why It's Good For The Game
Basic mobs are the future or something.
## Proof Of Testing
They worked when I tested them. I am NOT recording videos of each and
every mob mauling me.
## Changelog
🆑
refactor: Refactored the unused evil borg simple mobs into equally
unused malf borg basic mobs.
/🆑
This commit is contained in:
Alexis
2025-12-29 11:41:26 -08:00
committed by GitHub
parent 70b40c0be7
commit 6d668bec12
12 changed files with 318 additions and 177 deletions
@@ -71,16 +71,6 @@
/mob/living/simple_animal/hostile/cult/warrior,
/mob/living/simple_animal/hostile/devourdem,
/mob/living/simple_animal/hostile/engorge,
/mob/living/simple_animal/hostile/evilborg,
/mob/living/simple_animal/hostile/evilborg/bigguy,
/mob/living/simple_animal/hostile/evilborg/dog,
/mob/living/simple_animal/hostile/evilborg/dogstrong,
/mob/living/simple_animal/hostile/evilborg/engi,
/mob/living/simple_animal/hostile/evilborg/heavy,
/mob/living/simple_animal/hostile/evilborg/peace,
/mob/living/simple_animal/hostile/evilborg/protect,
/mob/living/simple_animal/hostile/evilborg/roomba,
/mob/living/simple_animal/hostile/evilborg/sec,
/mob/living/simple_animal/hostile/looter,
/mob/living/simple_animal/hostile/looter/big,
/mob/living/simple_animal/hostile/looter/crusher,
@@ -312,173 +312,6 @@
loot = list(/obj/effect/spawner/random/maintenance/five)
projectiletype = /obj/projectile/beam/laser
// Damaged Borgs
/mob/living/simple_animal/hostile/evilborg
name = "Malfunctioning Cyborg"
desc = "A small cyborg unit, hacked or malfunctioning. It is likely hostile."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotold"
icon_living = "evilbotold"
gender = NEUTER
mob_biotypes = MOB_ROBOTIC
health = 75
maxHealth = 75
melee_damage_lower = 10
melee_damage_upper = 10
attack_verb_continuous = "claws"
attack_verb_simple = "claw"
attack_sound = 'sound/items/weapons/bladeslice.ogg'
attack_vis_effect = ATTACK_EFFECT_CLAW
projectilesound = 'sound/items/weapons/gun/pistol/shot.ogg'
projectiletype = /obj/projectile/hivebotbullet
faction = list(FACTION_HOSTILE)
check_friendly_fire = 1
atmos_requirements = null
minbodytemp = 0
verb_say = "states"
verb_ask = "queries"
verb_exclaim = "declares"
verb_yell = "alarms"
bubble_icon = "machine"
speech_span = SPAN_ROBOT
del_on_death = 1
loot = list(/obj/effect/decal/cleanable/blood/gibs/robot_debris)
/mob/living/simple_animal/hostile/evilborg/heavy
name = "Malfunctioning Heavy Cyborg"
desc = "A large cyborg unit, hacked or malfunctioning. It- oh my god is that a chainsaw?!"
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotheavy"
icon_living = "evilbotheavy"
health = 125
maxHealth = 125
melee_damage_lower = 20
melee_damage_upper = 20
attack_verb_continuous = "saws"
attack_verb_simple = "saw"
attack_sound = 'sound/items/weapons/chainsawhit.ogg'
/mob/living/simple_animal/hostile/evilborg/peace
name = "Malfunctioning Peacekeeper Cyborg"
desc = "A cyborg unit, hacked or malfunctioning. This is a Peacekeeper model."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotpeace"
icon_living = "evilbotpeace"
health = 90
maxHealth = 90
melee_damage_lower = 18
melee_damage_upper = 18
attack_verb_continuous = "smacks"
attack_verb_simple = "smack"
attack_sound = 'sound/items/weapons/cqchit1.ogg'
/mob/living/simple_animal/hostile/evilborg/engi
name = "Malfunctioning Engineering Cyborg"
desc = "An engineering cyborg unit, hacked or malfunctioning- Oh shit that's a plasma bar."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotengi"
icon_living = "evilbotengi"
health = 100
maxHealth = 100
melee_damage_type = BURN
melee_damage_lower = 15
melee_damage_upper = 15
attack_verb_continuous = "welds"
attack_verb_simple = "weld"
attack_sound = 'sound/items/tools/welder.ogg'
/mob/living/simple_animal/hostile/evilborg/sec
name = "Malfunctioning Security Cyborg"
desc = "A security cyborg unit, hacked or malfunctioning. There are two guns attached to it."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotsec"
icon_living = "evilbotsec"
casingtype = /obj/item/ammo_casing/c45
projectilesound = 'sound/items/weapons/gun/smg/shot.ogg'
health = 75
maxHealth = 75
ranged = 1
melee_damage_lower = 8
melee_damage_upper = 8
attack_verb_continuous = "gunbutts"
attack_verb_simple = "gunbutt"
attack_sound = 'sound/items/weapons/smash.ogg'
/mob/living/simple_animal/hostile/evilborg/roomba
name = "Malfunctioning Roomba Cyborg"
desc = "A roomba, hacked or malfunctioning- OW MY FOOT!"
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotroomba"
icon_living = "evilbotroomba"
health = 80
maxHealth = 80
melee_damage_lower = 12
melee_damage_upper = 12
attack_verb_continuous = "pokes"
attack_verb_simple = "stab"
attack_sound = 'sound/items/weapons/genhit2.ogg'
/mob/living/simple_animal/hostile/evilborg/dog
name = "Malfunctioning Canine Cyborg"
desc = "A canine-borg, hacked or malfunctioning. This one appears to be a mining variant."
icon = 'modular_skyrat/master_files/icons/mob/newmobs64x32.dmi'
icon_state = "evilbotmine"
icon_living = "evilbotmine"
health = 115
maxHealth = 115
melee_damage_lower = 12
melee_damage_upper = 12
attack_verb_continuous = "cleaves"
attack_verb_simple = "smash"
attack_sound = 'sound/items/weapons/bladeslice.ogg'
/mob/living/simple_animal/hostile/evilborg/dogstrong
name = "Corrupt Hound"
desc = "A canine-borg, hacked or malfunctioning. This one is large, imposing, and can pack a big punch."
icon = 'modular_skyrat/master_files/icons/mob/newmobs64x32.dmi'
icon_state = "evilbotelite" // ported from VORE
icon_living = "evilbotelite"
health = 130
maxHealth = 130
melee_damage_lower = 18
melee_damage_upper = 18
attack_verb_continuous = "bites"
attack_verb_simple = "bite"
attack_sound = 'sound/items/weapons/bite.ogg'
/mob/living/simple_animal/hostile/evilborg/bigguy
name = "Malfunctioning Military robot"
desc = "A military robot unit, hacked or malfunctioning. This one looks really tough.."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "sentrybot"
icon_living = "sentrybot"
icon_dead = "sentrybot_d"
casingtype = /obj/item/ammo_casing/c45
projectilesound = 'sound/items/weapons/gun/smg/shot.ogg'
health = 250
maxHealth = 250
ranged = 1
melee_damage_lower = 12
melee_damage_upper = 12
attack_verb_continuous = "gunbutts"
attack_verb_simple = "gunbutt"
attack_sound = 'sound/items/weapons/smash.ogg'
/mob/living/simple_animal/hostile/evilborg/protect
name = "Malfunctioning Standard Robot"
desc = "A civlian model robot, hacked or malfunctioning with mechanical claw arms."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "protectbot"
icon_living = "protectbot"
health = 100
maxHealth = 100
melee_damage_lower = 15
melee_damage_upper = 15
attack_verb_continuous = "claws"
attack_verb_simple = "punch"
attack_sound = 'sound/items/weapons/genhit2.ogg'
// Beasts
/mob/living/simple_animal/hostile/bigcrab
@@ -0,0 +1,30 @@
/mob/living/basic/malf_borg/big_guy
name = "Malfunctioning Military Robot"
desc = "A military robot unit, hacked or malfunctioning. This one looks really tough."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
ai_controller = /datum/ai_controller/basic_controller/simple/simple_skirmisher
icon_state = "sentrybot"
icon_living = "sentrybot"
icon_dead = "sentrybot_d"
health = 250
maxHealth = 250
speed = 0.9
exposed_wound_bonus = 0
sharpness = NONE
attack_verb_continuous = "gunbutts"
attack_verb_simple = "gunbutt"
attack_sound = 'sound/items/weapons/smash.ogg'
projectiletype = /obj/projectile/bullet/c45
projectilesound = 'sound/items/weapons/gun/smg/shot.ogg'
/mob/living/basic/malf_borg/big_guy/Initialize(mapload)
. = ..()
AddComponent(/datum/component/ranged_attacks, projectile_type = projectiletype, projectile_sound = projectilesound)
ADD_TRAIT(src, TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM, /datum/component/ranged_attacks)
@@ -0,0 +1,55 @@
/mob/living/basic/malf_borg/dog
name = "Malfunctioning Canine Cyborg"
desc = "A canine-borg, hacked or malfunctioning. This one appears to be a mining variant."
icon = 'modular_skyrat/master_files/icons/mob/newmobs64x32.dmi'
icon_state = "evilbotmine"
icon_living = "evilbotmine"
icon_dead = "evilbotmine"
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile
health = 115
maxHealth = 115
speed = 1.3
melee_damage_type = BRUTE
wound_bonus = 10
exposed_wound_bonus = 5
sharpness = SHARP_EDGED
attack_verb_continuous = "cleaves"
attack_verb_simple = "smash"
attack_sound = 'sound/items/weapons/bladeslice.ogg'
/mob/living/basic/malf_borg/dog/Initialize(mapload)
. = ..()
/mob/living/basic/malf_borg/dogstrong
name = "Corrupt Hound"
desc = "A canine-borg, hacked or malfunctioning. This one is large, imposing, and can pack a big punch."
icon = 'modular_skyrat/master_files/icons/mob/newmobs64x32.dmi'
icon_state = "evilbotelite"
icon_living = "evilbotelite"
icon_dead = "evilbotelite"
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile
health = 130
maxHealth = 130
speed = 1.15
melee_damage_type = BRUTE
wound_bonus = 15
exposed_wound_bonus = 8
sharpness = SHARP_POINTY
attack_verb_continuous = "bites"
attack_verb_simple = "bite"
attack_sound = 'sound/items/weapons/bite.ogg'
/mob/living/basic/malf_borg/dogstrong/Initialize(mapload)
. = ..()
@@ -0,0 +1,25 @@
/mob/living/basic/malf_borg/engi
name = "Malfunctioning Engineering Cyborg"
desc = "An engineering cyborg unit, hacked or malfunctioning—oh shit that's a plasma bar."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotengi"
icon_living = "evilbotengi"
icon_dead = "evilbotengi"
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile
health = 100
maxHealth = 100
melee_damage_type = BURN
wound_bonus = CANT_WOUND
exposed_wound_bonus = 0
sharpness = NONE
attack_verb_continuous = "welds"
attack_verb_simple = "weld"
attack_sound = 'sound/items/tools/welder.ogg'
/mob/living/basic/malf_borg/engi/Initialize(mapload)
. = ..()
@@ -0,0 +1,27 @@
/mob/living/basic/malf_borg/heavy
name = "Malfunctioning Heavy Cyborg"
desc = "A large cyborg unit, hacked or malfunctioning. It—oh my god is that a chainsaw?!"
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotheavy"
icon_living = "evilbotheavy"
icon_dead = "evilbotheavy"
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile
health = 125
maxHealth = 125
speed = 0.85
melee_damage_type = BRUTE
wound_bonus = 25
exposed_wound_bonus = 15
sharpness = SHARP_EDGED
attack_verb_continuous = "saws"
attack_verb_simple = "saw"
attack_sound = 'sound/items/weapons/chainsawhit.ogg'
/mob/living/basic/malf_borg/heavy/Initialize(mapload)
. = ..()
@@ -0,0 +1,70 @@
/mob/living/basic/malf_borg
name = "Malfunctioning Cyborg"
desc = "A small cyborg unit, hacked or malfunctioning. It is likely hostile."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
ai_controller = /datum/ai_controller/basic_controller/simple/simple_skirmisher
icon_state = "evilbotold"
icon_living = "evilbotold"
gender = NEUTER
mob_biotypes = MOB_ROBOTIC
faction = list(FACTION_HOSTILE)
combat_mode = TRUE
health = 75
maxHealth = 75
speed = 1
melee_damage_lower = 5
melee_damage_upper = 10
obj_damage = 15
armour_penetration = 10
melee_damage_type = BRUTE
wound_bonus = CANT_WOUND
sharpness = SHARP_EDGED
melee_attack_cooldown = 2 SECONDS
attack_verb_continuous = "claws"
attack_verb_simple = "claw"
attack_sound = 'sound/items/weapons/bladeslice.ogg'
attack_vis_effect = ATTACK_EFFECT_CLAW
attacked_sound = SFX_PUNCH
///The type of projectile that fires from attacks.
var/projectiletype = /obj/projectile/hivebotbullet
///The sound that plays when the projectile is fired.
var/projectilesound = 'sound/items/weapons/gun/pistol/shot.ogg'
verb_say = "states"
verb_ask = "queries"
verb_exclaim = "declares"
verb_yell = "alarms"
bubble_icon = "machine"
speech_span = SPAN_ROBOT
habitable_atmos = null
minimum_survivable_temperature = 0
maximum_survivable_temperature = INFINITY
damage_coeff = list(
BRUTE = 1,
BURN = 1,
TOX = 0,
OXY = 0,
STAMINA = 1
)
guaranteed_butcher_results = list(
/obj/effect/decal/cleanable/blood/gibs/robot_debris = 1
)
/mob/living/basic/malf_borg/Initialize(mapload)
. = ..()
AddComponent(/datum/component/ranged_attacks, projectile_type = projectiletype, projectile_sound = projectilesound)
/mob/living/basic/malf_borg/death(gibbed)
do_sparks(number = 3, cardinal_only = TRUE, source = src)
return ..()
@@ -0,0 +1,25 @@
/mob/living/basic/malf_borg/peace
name = "Malfunctioning Peacekeeper Cyborg"
desc = "A cyborg unit, hacked or malfunctioning. This is a Peacekeeper model."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotpeace"
icon_living = "evilbotpeace"
icon_dead = "evilbotpeace"
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile
health = 90
maxHealth = 90
melee_damage_type = BRUTE
wound_bonus = CANT_WOUND
exposed_wound_bonus = 0
sharpness = NONE
attack_verb_continuous = "smacks"
attack_verb_simple = "smack"
attack_sound = 'sound/items/weapons/cqchit1.ogg'
/mob/living/basic/malf_borg/peace/Initialize(mapload)
. = ..()
@@ -0,0 +1,25 @@
/mob/living/basic/malf_borg/protect
name = "Malfunctioning Standard Robot"
desc = "A civilian model robot, hacked or malfunctioning with mechanical claw arms."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "protectbot"
icon_living = "protectbot"
icon_dead = "protectbot"
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile
health = 100
maxHealth = 100
melee_damage_type = BRUTE
wound_bonus = 5
exposed_wound_bonus = 2
sharpness = SHARP_POINTY
attack_verb_continuous = "claws"
attack_verb_simple = "punch"
attack_sound = 'sound/items/weapons/genhit2.ogg'
/mob/living/basic/malf_borg/protect/Initialize(mapload)
. = ..()
@@ -0,0 +1,27 @@
/mob/living/basic/malf_borg/roomba
name = "Malfunctioning Roomba Cyborg"
desc = "A roomba, hacked or malfunctioning—OW MY FOOT!"
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
icon_state = "evilbotroomba"
icon_living = "evilbotroomba"
icon_dead = "evilbotroomba"
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile
health = 80
maxHealth = 80
speed = 1.2
melee_damage_type = BRUTE
wound_bonus = 6
exposed_wound_bonus = 3
sharpness = SHARP_POINTY
attack_verb_continuous = "pokes"
attack_verb_simple = "stab"
attack_sound = 'sound/items/weapons/genhit2.ogg'
/mob/living/basic/malf_borg/roomba/Initialize(mapload)
. = ..()
@@ -0,0 +1,25 @@
/mob/living/basic/malf_borg/sec
name = "Malfunctioning Security Cyborg"
desc = "A security cyborg unit, hacked or malfunctioning. There are two guns attached to it."
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
ai_controller = /datum/ai_controller/basic_controller/simple/simple_skirmisher
icon_state = "evilbotsec"
icon_living = "evilbotsec"
icon_dead = "evilbotsec"
exposed_wound_bonus = 0
sharpness = NONE
attack_verb_continuous = "gunbutts"
attack_verb_simple = "gunbutt"
attack_sound = 'sound/items/weapons/smash.ogg'
projectiletype = /obj/projectile/bullet/c45
projectilesound = 'sound/items/weapons/gun/smg/shot.ogg'
/mob/living/basic/malf_borg/sec/Initialize(mapload)
. = ..()
AddComponent(/datum/component/ranged_attacks, projectile_type = projectiletype, projectile_sound = projectilesound)
ADD_TRAIT(src, TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM, /datum/component/ranged_attacks)
+9
View File
@@ -9513,6 +9513,15 @@
#include "modular_zubbers\code\modules\mob\living\basic\bots\firebot.dm"
#include "modular_zubbers\code\modules\mob\living\basic\guardian\guardian_types\holoparasite_timestop.dm"
#include "modular_zubbers\code\modules\mob\living\basic\lightgeist\lightgeist.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\malf_borg.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\big_guy\big_guy.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\dog\dog.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\engi\engi.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\heavy\heavy.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\peacekeeper\peacekeeper.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\protect\protect.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\roomba\roomba.dm"
#include "modular_zubbers\code\modules\mob\living\basic\malf_borgs\sec\sec.dm"
#include "modular_zubbers\code\modules\mob\living\basic\moonstation\cazador.dm"
#include "modular_zubbers\code\modules\mob\living\basic\moonstation\scorpion.dm"
#include "modular_zubbers\code\modules\mob\living\basic\moonstation\snake.dm"