mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Merge pull request #269 from SkyMarshal/master
Fixed bugs with wrapping yourself in a closet, new CentCom uniforms, reactive teleport armor now works and has a sprite, fixed implanter issues.
This commit is contained in:
@@ -7,6 +7,7 @@ var/list/CustomItemList = list(
|
||||
// ckey real_name item path
|
||||
list("skymarshal", "Phillip Oswald", /obj/item/weapon/coin/silver), //Phillip likes to chew on cigars. Just unlit cigars, don't ask me why. Must be a clone thing. (Cigarette machines dispense cigars if they have a coin in them) --SkyMarshal
|
||||
list("spaceman96", "Trenna Seber", /obj/item/weapon/pen/multi), //For Spesss.
|
||||
list("spaceman96", "Trenna Seber", /obj/item/clothing/suit/storage/labcoat/pink), //For Spesss.
|
||||
list("asanadas", "Book Berner", /obj/item/clothing/under/chameleon/psyche)
|
||||
)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
flags = FPRINT
|
||||
var/health = 100 //Might be a bit much, dono can always change later //Nerfed -Pete
|
||||
var/lastbang //
|
||||
var/lasttry = 0
|
||||
|
||||
/obj/structure/closet/acloset
|
||||
name = "Strange closet"
|
||||
|
||||
@@ -18,16 +18,23 @@
|
||||
name = "Captain's hat"
|
||||
icon_state = "captain"
|
||||
desc = "It's good being the king."
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
flags = FPRINT|TABLEPASS
|
||||
item_state = "caphat"
|
||||
|
||||
/obj/item/clothing/head/centhat
|
||||
name = "Cent. Comm. hat"
|
||||
icon_state = "centcom"
|
||||
desc = "It's even better to be the emperor."
|
||||
flags = FPRINT|TABLEPASS|SUITSPACE
|
||||
flags = FPRINT|TABLEPASS
|
||||
item_state = "centhat"
|
||||
|
||||
/obj/item/clothing/head/deathsquad/beret
|
||||
name = "officer's beret"
|
||||
desc = "An armored beret commonly used by special operations officers."
|
||||
icon_state = "beret_badge"
|
||||
flags = FPRINT|TABLEPASS
|
||||
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
|
||||
|
||||
|
||||
/obj/item/clothing/head/powdered_wig
|
||||
name = "powdered wig"
|
||||
|
||||
@@ -197,16 +197,16 @@
|
||||
/obj/item/clothing/under/rank/centcom_officer
|
||||
desc = "A jumpsuit worn by Centcom Officers."
|
||||
name = "CentCom Officer Jumpsuit"
|
||||
icon_state = "officer"
|
||||
icon_state = "centcom"
|
||||
item_state = "g_suit"
|
||||
color = "officer"
|
||||
color = "centcom"
|
||||
|
||||
/obj/item/clothing/under/rank/centcom_commander
|
||||
desc = "A jumpsuit worn by Centcom's highest level Commanders."
|
||||
name = "CentCom Officer Jumpsuit"
|
||||
icon_state = "centcom"
|
||||
icon_state = "officer"
|
||||
item_state = "dg_suit"
|
||||
color = "centcom"
|
||||
color = "officer"
|
||||
|
||||
/obj/item/clothing/under/rank/miner
|
||||
desc = "A snappy jumpsuit with a sturdy set of overalls. It is very dirty."
|
||||
|
||||
@@ -458,6 +458,7 @@
|
||||
var/registered = null
|
||||
var/assignment = null
|
||||
var/obj/item/weapon/photo/PHOTO = null
|
||||
var/over = 1
|
||||
|
||||
/obj/item/weapon/card/id/gold
|
||||
name = "identification card"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
return (!density)
|
||||
|
||||
/obj/structure/closet/proc/can_open()
|
||||
if(src.welded)
|
||||
if(src.welded || istype(src.loc,/obj/effect/bigDelivery))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -120,12 +120,13 @@
|
||||
if(istype(W, /obj/item/weapon/packageWrap))
|
||||
var/obj/item/weapon/packageWrap/O = W
|
||||
if (O.amount > 3)
|
||||
src.close()
|
||||
var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(src.loc))
|
||||
P.wrapped = src
|
||||
src.close()
|
||||
P.waswelded = welded
|
||||
src.welded = 0
|
||||
src.loc = P
|
||||
src.opened = 0
|
||||
O.amount -= 3
|
||||
else
|
||||
user << "\blue You need more paper."
|
||||
@@ -186,18 +187,18 @@
|
||||
return
|
||||
|
||||
if(!src.open())
|
||||
if(istype(src.loc,/obj/effect/bigDelivery) && lastbang == 0)
|
||||
if(istype(src.loc,/obj/effect/bigDelivery) && lasttry == 0)
|
||||
var/obj/effect/bigDelivery/Pack = src.loc
|
||||
if(istype(Pack.loc,/turf) && Pack.waswelded == 0)
|
||||
for (var/mob/M in hearers(src.loc, null))
|
||||
M << text("<FONT size=[] color=#6D3F40>BANG, bang, rrrrrip!</FONT>", max(0, 5 - get_dist(src, M)))
|
||||
lastbang = 1
|
||||
M << text("<FONT size=[] color=red>BANG, bang, rrrrrip!</FONT>", max(0, 5 - get_dist(src, M)))
|
||||
lasttry = 1
|
||||
sleep(10)
|
||||
src.welded = 0
|
||||
Pack.unwrap()
|
||||
src.open()
|
||||
spawn(30)
|
||||
lastbang = 0
|
||||
lasttry = 0
|
||||
else if(!istype(src.loc,/obj/effect/bigDelivery))
|
||||
user << "\blue It won't budge!"
|
||||
if(!lastbang)
|
||||
|
||||
@@ -349,6 +349,12 @@ THERMAL GLASSES
|
||||
else if(src.icon_state == "labgreen")
|
||||
src.icon_state = "labgreen_open"
|
||||
usr << "You unbutton the labcoat."
|
||||
if(src.icon_state == "labcoat_pink_open")
|
||||
src.icon_state = "labcoat_pink"
|
||||
usr << "You button up the labcoat."
|
||||
else if(src.icon_state == "labcoat_pink")
|
||||
src.icon_state = "labcoat_pink_open"
|
||||
usr << "You unbutton the labcoat."
|
||||
|
||||
else
|
||||
usr << "Sorry! The suit you're wearing doesn't have buttons!"
|
||||
|
||||
@@ -34,11 +34,13 @@
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/picked = 0
|
||||
var/mob/living/carbon/human/T = M
|
||||
for(var/datum/organ/external/E in T)
|
||||
var/list/datum/organ/external/E = T.GetOrgans()
|
||||
while(picked == 0 && E.len > 0)
|
||||
var/datum/organ/external/O = pick(E)
|
||||
E -= O
|
||||
if(!E.implant)
|
||||
E.implant = src.imp
|
||||
O.implant = src.imp
|
||||
picked = 1
|
||||
break
|
||||
if(picked == 0)
|
||||
for (var/mob/O in viewers(M, null))
|
||||
O.show_message(text("[user.name] can't find anywhere to implant [M.name]"), 1)
|
||||
|
||||
@@ -18,6 +18,9 @@ SYNDICATE UPLINK
|
||||
return
|
||||
|
||||
/obj/item/weapon/syndicate_uplink/attack_self(mob/user as mob)
|
||||
interact(user)
|
||||
|
||||
/obj/item/weapon/syndicate_uplink/proc/interact(mob/user as mob)
|
||||
currentUser = user
|
||||
user.machine = src
|
||||
var/dat
|
||||
@@ -220,11 +223,11 @@ SYNDICATE UPLINK
|
||||
if (href_list["temp"])
|
||||
src.temp = null
|
||||
if (istype(src.loc, /mob))
|
||||
attack_self(src.loc)
|
||||
interact(src.loc)
|
||||
else
|
||||
for(var/mob/M in viewers(1, src))
|
||||
if (M.client)
|
||||
src.attack_self(M)
|
||||
interact(M)
|
||||
return
|
||||
|
||||
/obj/item/weapon/syndicate_uplink/proc/shutdown_uplink()
|
||||
|
||||
@@ -674,11 +674,13 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
if("centcom official")
|
||||
M.equip_if_possible(new /obj/item/clothing/under/rank/centcom_officer(M), M.slot_w_uniform)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/black(M), M.slot_shoes)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/black(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/white(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset/heads/hop(M), M.slot_ears)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/sunglasses(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/weapon/gun/energy(M), M.slot_belt)
|
||||
M.equip_if_possible(new /obj/item/weapon/pen(M), M.slot_l_store)
|
||||
var/obj/item/clothing/suit/storage/armoredundersuit/K = new(M)
|
||||
var/obj/item/clothing/glasses/sunglasses/V = new(M)
|
||||
V.loc = K
|
||||
M.equip_if_possible(K, M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/weapon/gun/energy(M), M.slot_s_store)
|
||||
|
||||
var/obj/item/device/pda/heads/pda = new(M)
|
||||
pda.owner = M.real_name
|
||||
@@ -687,27 +689,33 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
|
||||
M.equip_if_possible(pda, M.slot_r_store)
|
||||
|
||||
M.equip_if_possible(new /obj/item/weapon/clipboard(M), M.slot_l_hand)
|
||||
var/obj/item/weapon/clipboard/G = new(M)
|
||||
G.pen = new /obj/item/weapon/pen(G)
|
||||
M.equip_if_possible(G, M.slot_l_store)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.item_state = "id_inv"
|
||||
W.access = get_all_accesses()
|
||||
W.access += list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer")
|
||||
W.assignment = "CentCom Review Official"
|
||||
W.registered = M.real_name
|
||||
W.over = 0
|
||||
M.equip_if_possible(W, M.slot_wear_id)
|
||||
|
||||
if("centcom commander")
|
||||
M.equip_if_possible(new /obj/item/clothing/under/rank/centcom_commander(M), M.slot_w_uniform)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/armor/bulletproof(M), M.slot_wear_suit)
|
||||
var/obj/item/clothing/suit/storage/armoredundersuit/K = new(M)
|
||||
var/obj/item/clothing/glasses/eyepatch/G = new(M)
|
||||
G.loc = K
|
||||
M.equip_if_possible(K, M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/swat(M), M.slot_shoes)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/swat(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/white(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), M.slot_ears)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/eyepatch(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/clothing/mask/cigarette/cigar/cohiba(M), M.slot_wear_mask)
|
||||
M.equip_if_possible(new /obj/item/clothing/head/centhat(M), M.slot_head)
|
||||
M.equip_if_possible(new /obj/item/weapon/gun/projectile/mateba(M), M.slot_belt)
|
||||
M.equip_if_possible(new /obj/item/weapon/gun/projectile/mateba(M), M.slot_s_store)
|
||||
M.equip_if_possible(new /obj/item/weapon/zippo(M), M.slot_r_store)
|
||||
M.equip_if_possible(new /obj/item/ammo_magazine/a357(M), M.slot_l_store)
|
||||
|
||||
@@ -718,17 +726,18 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "CentCom Commanding Officer"
|
||||
W.registered = M.real_name
|
||||
W.over = 0
|
||||
M.equip_if_possible(W, M.slot_wear_id)
|
||||
|
||||
if("special ops officer")
|
||||
M.equip_if_possible(new /obj/item/clothing/under/syndicate/combat(M), M.slot_w_uniform)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/armor/swat/officer(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/suit/storage/officer(M), M.slot_wear_suit)
|
||||
M.equip_if_possible(new /obj/item/clothing/shoes/combat(M), M.slot_shoes)
|
||||
M.equip_if_possible(new /obj/item/clothing/gloves/combat(M), M.slot_gloves)
|
||||
M.equip_if_possible(new /obj/item/device/radio/headset/heads/captain(M), M.slot_ears)
|
||||
M.equip_if_possible(new /obj/item/clothing/glasses/thermal/eyepatch(M), M.slot_glasses)
|
||||
M.equip_if_possible(new /obj/item/clothing/mask/cigarette/cigar/havanian(M), M.slot_wear_mask)
|
||||
M.equip_if_possible(new /obj/item/clothing/head/helmet/space/deathsquad/beret(M), M.slot_head)
|
||||
M.equip_if_possible(new /obj/item/clothing/head/deathsquad/beret(M), M.slot_head)
|
||||
M.equip_if_possible(new /obj/item/weapon/gun/energy/pulse_rifle/M1911(M), M.slot_belt)
|
||||
M.equip_if_possible(new /obj/item/weapon/zippo(M), M.slot_r_store)
|
||||
M.equip_if_possible(new /obj/item/weapon/storage/backpack/satchel(M), M.slot_back)
|
||||
|
||||
@@ -24,7 +24,7 @@ var/global/sent_strike_team = 0
|
||||
|
||||
var/input = null
|
||||
while(!input)
|
||||
input = input(src, "Please specify which mission the death commando squad shall undertake.", "Specify Mission", "")
|
||||
input = input(src, "Please specify which mission the death commando squad shall undertake.", "Specify Mission", "") as text|null
|
||||
if(!input)
|
||||
if(alert("Error, no mission set. Do you want to exit the setup process?",,"Yes","No")=="Yes")
|
||||
return
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/helmet/space/deathsquad/beret
|
||||
/*/obj/item/clothing/head/helmet/space/deathsquad/beret
|
||||
name = "officer's beret"
|
||||
desc = "An armored beret commonly used by special operations officers."
|
||||
icon_state = "beret_badge"
|
||||
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)
|
||||
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30)*/
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -48,13 +48,29 @@
|
||||
slowdown = 1
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/armor/swat/officer
|
||||
/obj/item/clothing/suit/storage/officer
|
||||
name = "officer jacket"
|
||||
desc = "An armored jacket used in special operations."
|
||||
icon_state = "detective"
|
||||
item_state = "det_suit"
|
||||
|
||||
|
||||
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
heat_transfer_coefficient = 0.02
|
||||
protective_temperature = 1000
|
||||
flags = FPRINT | TABLEPASS | SUITSPACE
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen)
|
||||
slowdown = 1
|
||||
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 0, rad = 0)
|
||||
|
||||
/obj/item/clothing/suit/storage/armoredundersuit
|
||||
name = "armoured undersuit"
|
||||
desc = "An layer of armor that attaches to clothing, outfitted with pockets."
|
||||
icon_state = "invisible"
|
||||
item_state = "invisible"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/pepperspray,/obj/item/weapon/gun/projectile,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/policetaperoll)
|
||||
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
|
||||
|
||||
|
||||
@@ -41,3 +41,8 @@
|
||||
name = "Scientist Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
|
||||
icon_state = "labcoat_tox_open"
|
||||
|
||||
/obj/item/clothing/suit/storage/labcoat/pink
|
||||
name = "Pink Labcoat"
|
||||
desc = "A suit that protects against minor chemical spills. Has a pink stripe down from the shoulders."
|
||||
icon_state = "labcoat_pink_open"
|
||||
|
||||
@@ -195,3 +195,10 @@
|
||||
if(src.sleeping_willingly)
|
||||
src.sleeping = 0
|
||||
src.sleeping_willingly = 0
|
||||
|
||||
/mob/living/carbon/human/proc/GetOrgans()
|
||||
var/list/L = list( )
|
||||
for(var/t in organs)
|
||||
if (istype(organs[text("[]", t)], /datum/organ/external))
|
||||
L += organs[text("[]", t)]
|
||||
return L
|
||||
@@ -880,7 +880,8 @@
|
||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
||||
|
||||
if (wear_id)
|
||||
overlays += image("icon" = 'mob.dmi', "icon_state" = "id[!lying ? null : "2"]", "layer" = MOB_LAYER)
|
||||
if(wear_id.over)
|
||||
overlays += image("icon" = 'mob.dmi', "icon_state" = "id[!lying ? null : "2"]", "layer" = MOB_LAYER)
|
||||
|
||||
if (client)
|
||||
client.screen -= hud_used.intents
|
||||
@@ -954,7 +955,8 @@
|
||||
var/t1 = s_store.item_state
|
||||
if (!t1)
|
||||
t1 = s_store.icon_state
|
||||
overlays += image("icon" = 'belt_mirror.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
if(!istype(wear_suit, /obj/item/clothing/suit/storage/armoredundersuit))
|
||||
overlays += image("icon" = 'belt_mirror.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")), "layer" = MOB_LAYER)
|
||||
s_store.screen_loc = ui_sstore1
|
||||
|
||||
if (h_store)
|
||||
|
||||
@@ -63,14 +63,12 @@ emp_act
|
||||
if(I.IsShield() && (prob(35)))
|
||||
visible_message("\red <B>The reactive teleport system flings [src] clear of [attack_text]!</B>")
|
||||
var/list/turfs = new/list()
|
||||
for(var/turf/T in orange(6))
|
||||
for(var/turf/T in orange(6,src))
|
||||
if(istype(T,/turf/space)) continue
|
||||
if(T.density) continue
|
||||
if(T.x>world.maxx-6 || T.x<6) continue
|
||||
if(T.y>world.maxy-6 || T.y<6) continue
|
||||
turfs += T
|
||||
if(!turfs.len) turfs += pick(/turf in orange(6))
|
||||
else
|
||||
if(!turfs.len)
|
||||
turfs += pick(/turf in orange(6,src))
|
||||
visible_message("\red <B>The reactive teleport system malfunctions!</B>")
|
||||
var/turf/picked = pick(turfs)
|
||||
if(!isturf(picked)) return
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
var/sortTag = null
|
||||
flags = FPRINT
|
||||
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
|
||||
var/examtext = null
|
||||
var/examtext = null
|
||||
var/label_x = 0
|
||||
var/tag_x = 0
|
||||
var/tag_x = 0
|
||||
var/waswelded = 0
|
||||
|
||||
|
||||
|
||||
attack_hand(mob/user as mob)
|
||||
return unwrap()
|
||||
@@ -87,6 +87,13 @@
|
||||
..()
|
||||
return
|
||||
|
||||
relaymove(mob/user as mob)
|
||||
for(var/obj/structure/closet/F in src)
|
||||
user.loc = F
|
||||
F.contents += user
|
||||
F.opened = 0
|
||||
break
|
||||
|
||||
/obj/item/smallDelivery
|
||||
desc = "A small wrapped package."
|
||||
name = "small parcel"
|
||||
|
||||
Reference in New Issue
Block a user