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:
Tastyfish
2012-01-11 22:32:43 -08:00
24 changed files with 111 additions and 45 deletions
+1
View File
@@ -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)
)
+1
View File
@@ -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"
+9 -2
View File
@@ -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"
+4 -4
View File
@@ -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."
+1
View File
@@ -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"
+7 -6
View File
@@ -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)
+6
View File
@@ -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)
+5 -2
View File
@@ -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()
+20 -11
View File
@@ -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)
+1 -1
View File
@@ -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)*/
+20 -4
View File
@@ -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)
+5
View File
@@ -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"
+7
View File
@@ -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
+10 -3
View File
@@ -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"