mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
Merge pull request #1274 from Citadel-Station-13/upstream-merge-27652
[MIRROR] [Centcom] Nanotrasen Private Security 2.0
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
"Traitor", "Nuke Op", "Cultist", "Clockwork Cultist",
|
"Traitor", "Nuke Op", "Cultist", "Clockwork Cultist",
|
||||||
"Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer",
|
"Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer",
|
||||||
"Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon",
|
"Ash Walker", "Deathsquad Officer", "Ian", "Slaughter Demon",
|
||||||
"Laughter Demon")
|
"Laughter Demon", "Private Security Officer")
|
||||||
var/pushed_over = FALSE //If the cutout is pushed over and has to be righted
|
var/pushed_over = FALSE //If the cutout is pushed over and has to be righted
|
||||||
var/deceptive = FALSE //If the cutout actually appears as what it portray and not a discolored version
|
var/deceptive = FALSE //If the cutout actually appears as what it portray and not a discolored version
|
||||||
|
|
||||||
@@ -168,6 +168,11 @@
|
|||||||
desc = "A cardboard cutout of a laughter demon."
|
desc = "A cardboard cutout of a laughter demon."
|
||||||
icon = 'icons/mob/mob.dmi'
|
icon = 'icons/mob/mob.dmi'
|
||||||
icon_state = "bowmon"
|
icon_state = "bowmon"
|
||||||
|
if("Private Security Officer")
|
||||||
|
name = "Private Security Officer"
|
||||||
|
desc = "A cardboard cutout of a private security officer."
|
||||||
|
icon = 'icons/mob/mob.dmi'
|
||||||
|
icon_state = "cutout_ntsec"
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/item/cardboard_cutout/setDir(newdir)
|
/obj/item/cardboard_cutout/setDir(newdir)
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
var/uses = 1 //how many times can we spawn from it. set to -1 for infinite.
|
var/uses = 1 //how many times can we spawn from it. set to -1 for infinite.
|
||||||
var/brute_damage = 0
|
var/brute_damage = 0
|
||||||
var/oxy_damage = 0
|
var/oxy_damage = 0
|
||||||
|
var/burn_damage = 0
|
||||||
|
var/mob_color //Change the mob's color
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1
|
anchored = 1
|
||||||
var/banType = "lavaland"
|
var/banType = "lavaland"
|
||||||
@@ -68,6 +70,8 @@
|
|||||||
|
|
||||||
M.adjustOxyLoss(oxy_damage)
|
M.adjustOxyLoss(oxy_damage)
|
||||||
M.adjustBruteLoss(brute_damage)
|
M.adjustBruteLoss(brute_damage)
|
||||||
|
M.adjustFireLoss(burn_damage)
|
||||||
|
M.color = mob_color
|
||||||
equip(M)
|
equip(M)
|
||||||
|
|
||||||
if(ckey)
|
if(ckey)
|
||||||
@@ -115,24 +119,29 @@
|
|||||||
var/l_pocket = -1
|
var/l_pocket = -1
|
||||||
var/back = -1
|
var/back = -1
|
||||||
var/id = -1
|
var/id = -1
|
||||||
|
var/neck = -1
|
||||||
|
var/backpack_contents = -1
|
||||||
|
var/suit_store = -1
|
||||||
|
|
||||||
/obj/effect/mob_spawn/human/Initialize()
|
/obj/effect/mob_spawn/human/Initialize()
|
||||||
if(ispath(outfit))
|
if(ispath(outfit))
|
||||||
outfit = new outfit()
|
outfit = new outfit()
|
||||||
if(!outfit)
|
if(!outfit)
|
||||||
outfit = new /datum/outfit
|
outfit = new /datum/outfit
|
||||||
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/mob_spawn/human/equip(mob/living/carbon/human/H)
|
/obj/effect/mob_spawn/human/equip(mob/living/carbon/human/H)
|
||||||
if(mob_species)
|
if(mob_species)
|
||||||
H.set_species(mob_species)
|
H.set_species(mob_species)
|
||||||
if(husk)
|
if(husk)
|
||||||
H.Drain()
|
H.Drain()
|
||||||
|
else //Because for some reason I can't track down, things are getting turned into husks even if husk = false. It's in some damage proc somewhere.
|
||||||
|
H.cure_husk()
|
||||||
|
H.underwear = "Nude"
|
||||||
|
H.undershirt = "Nude"
|
||||||
|
H.socks = "Nude"
|
||||||
if(outfit)
|
if(outfit)
|
||||||
var/static/list/slots = list("uniform", "r_hand", "l_hand", "suit", "shoes", "gloves", "ears", "glasses", "mask", "head", "belt", "r_pocket", "l_pocket", "back", "id")
|
var/static/list/slots = list("uniform", "r_hand", "l_hand", "suit", "shoes", "gloves", "ears", "glasses", "mask", "head", "belt", "r_pocket", "l_pocket", "back", "id", "neck", "backpack_contents", "suit_store")
|
||||||
for(var/slot in slots)
|
for(var/slot in slots)
|
||||||
var/T = vars[slot]
|
var/T = vars[slot]
|
||||||
if(!isnum(T))
|
if(!isnum(T))
|
||||||
@@ -320,7 +329,6 @@
|
|||||||
icon_state = "sleeper"
|
icon_state = "sleeper"
|
||||||
flavour_text = "You are a beach bum!"
|
flavour_text = "You are a beach bum!"
|
||||||
|
|
||||||
|
|
||||||
/datum/outfit/beachbum
|
/datum/outfit/beachbum
|
||||||
name = "Beach Bum"
|
name = "Beach Bum"
|
||||||
glasses = /obj/item/clothing/glasses/sunglasses
|
glasses = /obj/item/clothing/glasses/sunglasses
|
||||||
@@ -354,7 +362,7 @@
|
|||||||
/obj/effect/mob_spawn/human/commander
|
/obj/effect/mob_spawn/human/commander
|
||||||
name = "Commander"
|
name = "Commander"
|
||||||
id_job = "Commander"
|
id_job = "Commander"
|
||||||
id_access_list = list(GLOB.access_cent_captain)
|
id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage)
|
||||||
outfit = /datum/outfit/nanotrasencommandercorpse
|
outfit = /datum/outfit/nanotrasencommandercorpse
|
||||||
|
|
||||||
/datum/outfit/nanotrasencommandercorpse
|
/datum/outfit/nanotrasencommandercorpse
|
||||||
@@ -374,7 +382,7 @@
|
|||||||
/obj/effect/mob_spawn/human/nanotrasensoldier
|
/obj/effect/mob_spawn/human/nanotrasensoldier
|
||||||
name = "Nanotrasen Private Security Officer"
|
name = "Nanotrasen Private Security Officer"
|
||||||
id_job = "Private Security Force"
|
id_job = "Private Security Force"
|
||||||
id_access_list = list(GLOB.access_cent_specops)
|
id_access_list = list(GLOB.access_cent_captain, GLOB.access_cent_general, GLOB.access_cent_specops, GLOB.access_cent_medical, GLOB.access_cent_storage, GLOB.access_security)
|
||||||
outfit = /datum/outfit/nanotrasensoldiercorpse
|
outfit = /datum/outfit/nanotrasensoldiercorpse
|
||||||
|
|
||||||
/datum/outfit/nanotrasensoldiercorpse
|
/datum/outfit/nanotrasensoldiercorpse
|
||||||
@@ -398,6 +406,16 @@
|
|||||||
icon_state = "sleeper"
|
icon_state = "sleeper"
|
||||||
flavour_text = "You are a Nanotrasen Commander!"
|
flavour_text = "You are a Nanotrasen Commander!"
|
||||||
|
|
||||||
|
/obj/effect/mob_spawn/human/nanotrasensoldier/alive
|
||||||
|
death = FALSE
|
||||||
|
roundstart = FALSE
|
||||||
|
mob_name = "Private Security Officer"
|
||||||
|
name = "sleeper"
|
||||||
|
icon = 'icons/obj/Cryogenic2.dmi'
|
||||||
|
icon_state = "sleeper"
|
||||||
|
faction = "nanotrasenprivate"
|
||||||
|
flavour_text = "You are a Nanotrasen Private Security Officer!"
|
||||||
|
|
||||||
|
|
||||||
/////////////////Spooky Undead//////////////////////
|
/////////////////Spooky Undead//////////////////////
|
||||||
|
|
||||||
|
|||||||
@@ -23,3 +23,51 @@
|
|||||||
environment_smash = ENVIRONMENT_SMASH_NONE
|
environment_smash = ENVIRONMENT_SMASH_NONE
|
||||||
del_on_death = 0
|
del_on_death = 0
|
||||||
|
|
||||||
|
/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace
|
||||||
|
name = "Nanotrasen Private Security Officer"
|
||||||
|
desc = "An officer part of Nanotrasen's private security force."
|
||||||
|
icon = 'icons/mob/simple_human.dmi'
|
||||||
|
icon_state = "nanotrasen"
|
||||||
|
icon_living = "nanotrasen"
|
||||||
|
icon_dead = null
|
||||||
|
icon_gib = "syndicate_gib"
|
||||||
|
turns_per_move = 5
|
||||||
|
response_help = "pokes"
|
||||||
|
response_disarm = "shoves"
|
||||||
|
response_harm = "hits"
|
||||||
|
speed = 0
|
||||||
|
stat_attack = 1
|
||||||
|
robust_searching = 1
|
||||||
|
vision_range = 3
|
||||||
|
maxHealth = 100
|
||||||
|
health = 100
|
||||||
|
harm_intent_damage = 5
|
||||||
|
melee_damage_lower = 10
|
||||||
|
melee_damage_upper = 15
|
||||||
|
attacktext = "punches"
|
||||||
|
attack_sound = 'sound/weapons/punch1.ogg'
|
||||||
|
faction = list("nanotrasenprivate")
|
||||||
|
a_intent = INTENT_HARM
|
||||||
|
loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier)
|
||||||
|
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
|
||||||
|
unsuitable_atmos_damage = 15
|
||||||
|
status_flags = CANPUSH
|
||||||
|
search_objects = 1
|
||||||
|
|
||||||
|
/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace/Aggro()
|
||||||
|
..()
|
||||||
|
summon_backup(15)
|
||||||
|
say("411 in progress, requesting backup!")
|
||||||
|
|
||||||
|
/mob/living/simple_animal/hostile/retaliate/nanotrasenpeace/ranged
|
||||||
|
icon_state = "nanotrasenrangedsmg"
|
||||||
|
icon_living = "nanotrasenrangedsmg"
|
||||||
|
vision_range = 9
|
||||||
|
rapid = 1
|
||||||
|
ranged = 1
|
||||||
|
retreat_distance = 3
|
||||||
|
minimum_distance = 5
|
||||||
|
casingtype = /obj/item/ammo_casing/c46x30mm
|
||||||
|
projectilesound = 'sound/weapons/Gunshot_smg.ogg'
|
||||||
|
loot = list(/obj/item/weapon/gun/ballistic/automatic/wt550,
|
||||||
|
/obj/effect/mob_spawn/human/corpse/nanotrasensoldier)
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user