Merge pull request #1274 from Citadel-Station-13/upstream-merge-27652

[MIRROR] [Centcom] Nanotrasen Private Security 2.0
This commit is contained in:
LetterJay
2017-06-06 09:01:33 -05:00
committed by GitHub
4 changed files with 80 additions and 9 deletions

View File

@@ -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)

View File

@@ -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//////////////////////
@@ -461,4 +479,4 @@
back = /obj/item/weapon/storage/backpack back = /obj/item/weapon/storage/backpack
shoes = /obj/item/clothing/shoes/sneakers/black shoes = /obj/item/clothing/shoes/sneakers/black
suit = /obj/item/clothing/suit/armor/vest suit = /obj/item/clothing/suit/armor/vest
glasses = /obj/item/clothing/glasses/sunglasses/reagent glasses = /obj/item/clothing/glasses/sunglasses/reagent

View File

@@ -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