merge fixes

This commit is contained in:
alex-gh
2013-11-27 08:05:09 +01:00
75 changed files with 12117 additions and 11785 deletions
+36
View File
@@ -1006,3 +1006,39 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
containername = "Beekeeping crate"
access = access_hydroponics
group = "Hydroponics"
/datum/supply_packs/organic/vending
name = "Bartending Supply Crate"
contains = list(/obj/item/weapon/vending_refill/boozeomat,
/obj/item/weapon/vending_refill/coffee)
cost = 15
containername = "bartending supply crate"
/datum/supply_packs/organic/vending/snack
name = "Snack Supply Crate"
contains = list(/obj/item/weapon/vending_refill/snack,
/obj/item/weapon/vending_refill/snack,
/obj/item/weapon/vending_refill/snack)
cost = 15
containername = "snacks supply crate"
/datum/supply_packs/organic/vending/cola
name = "Softdrinks Supply Crate"
contains = list(/obj/item/weapon/vending_refill/cola,
/obj/item/weapon/vending_refill/cola)
cost = 15
containername = "softdrinks supply crate"
/datum/supply_packs/organic/vending/cigarette
name = "Cigarette Supply Crate"
contains = list(/obj/item/weapon/vending_refill/cigarette)
cost = 15
containername = "cigarette supply crate"
/datum/supply_packs/misc/autodrobe
name = "Autodrobe Supply crate"
contains = list(/obj/item/weapon/vending_refill/autodrobe,
/obj/item/weapon/vending_refill/autodrobe)
cost = 15
containername = "autodrobe supply crate"
+3
View File
@@ -1234,6 +1234,9 @@ proc/process_ghost_teleport_locs()
/area/security/armoury
name = "\improper Armory"
icon_state = "Warden"
/area/security/armoury/gamma
name = "\improper Gamma Armory"
icon_state = "Warden"
/area/security/hos
name = "\improper Head of Security's Office"
@@ -532,6 +532,7 @@ As such, it's hard-coded for now. No reason for it not to be, really.
del(head)
del(shoes)
del(gloves)
del(back)
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
equip_to_slot_or_del(R, slot_l_ear)
@@ -544,6 +545,7 @@ As such, it's hard-coded for now. No reason for it not to be, really.
equip_to_slot_or_del(new /obj/item/clothing/gloves/space_ninja(src), slot_gloves)
equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/space_ninja(src), slot_head)
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/voice/space_ninja(src), slot_wear_mask)
equip_to_slot_or_del(new /obj/item/weapon/tank/jetpack/oxygenblack(src), slot_back)
equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_belt)
equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_r_store)
equip_to_slot_or_del(new /obj/item/weapon/plastique(src), slot_l_store)
@@ -191,6 +191,9 @@
if(z_co == 2 || z_co < 1 || z_co > 6)
usr << "\red Error: Z is less than 1, greater than 6, or equal to 2."
fail = 1
if(istype(get_area(locate(x_co,y_co,z_co)), /area/security/armoury/gamma))
usr << "\red Error: Attempting to access telescience-protected area."
fail = 1
return fail
/obj/machinery/computer/telescience/Topic(href, href_list)
+61
View File
@@ -121,6 +121,11 @@
opacity = 1
assembly_type = /obj/structure/door_assembly/door_assembly_hatch
/obj/machinery/door/airlock/hatch/gamma
name = "Gamma Level Hatch"
hackProof = 1
aiControlDisabled = 1
/obj/machinery/door/airlock/maintenance_hatch
name = "Maintenance Hatch"
icon = 'icons/obj/doors/Doorhatchmaint2.dmi'
@@ -288,6 +293,11 @@
icon = 'icons/obj/doors/hightechsecurity.dmi'
assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity
/obj/machinery/door/airlock/highsecurity/red
name = "Secure Armory Airlock"
hackProof = 1
aiControlDisabled = 1
/*
About the new airlock wires panel:
* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
@@ -1062,3 +1072,54 @@ About the new airlock wires panel:
src.open()
src.locked = 1
return
/obj/machinery/door/airlock/hatch/gamma/attackby(C as obj, mob/user as mob)
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
if(!istype(usr, /mob/living/silicon))
if(src.isElectrified())
if(src.shock(user, 75))
return
if(istype(C, /obj/item/device/detective_scanner) || istype(C, /obj/item/taperoll))
return
src.add_fingerprint(user)
if((istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density))
var/obj/item/weapon/weldingtool/W = C
if(W.remove_fuel(0,user))
if(frozen)
frozen = 0
if(!src.welded)
src.welded = 1
else
src.welded = null
src.update_icon()
return
else
return
/obj/machinery/door/airlock/highsecurity/red/attackby(C as obj, mob/user as mob)
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
if(!istype(usr, /mob/living/silicon))
if(src.isElectrified())
if(src.shock(user, 75))
return
if(istype(C, /obj/item/device/detective_scanner) || istype(C, /obj/item/taperoll))
return
src.add_fingerprint(user)
if((istype(C, /obj/item/weapon/weldingtool) && !( src.operating > 0 ) && src.density))
var/obj/item/weapon/weldingtool/W = C
if(W.remove_fuel(0,user))
if(frozen)
frozen = 0
if(!src.welded)
src.welded = 1
else
src.welded = null
src.update_icon()
return
else
return
+57 -11
View File
@@ -2,6 +2,7 @@
var/product_name = "generic"
var/product_path = null
var/amount = 0
var/max_amount = 0
var/price = 0
var/display_color = "blue"
@@ -52,7 +53,7 @@
var/const/WIRE_SHOOTINV = 4
var/datum/wires/vending/wires = null
var/scan_id = 1
var/obj/item/weapon/vending_refill/refill_canister = null //The type of refill canisters used by this machine.
/obj/machinery/vending/New()
@@ -118,6 +119,7 @@
R.product_name = temp.name
R.product_path = typepath
R.amount = amount
R.max_amount = amount
R.price = price
R.display_color = pick("red","blue","green")
@@ -130,6 +132,36 @@
// world << "Added: [R.product_name]] - [R.amount] - [R.product_path]"
return
/obj/machinery/vending/proc/refill_inventory(obj/item/weapon/vending_refill/refill, datum/data/vending_product/machine, mob/user)
var/total = 0
var/to_restock = 0
for(var/datum/data/vending_product/machine_content in machine)
to_restock += machine_content.max_amount - machine_content.amount
if(to_restock <= refill.charges)
for(var/datum/data/vending_product/machine_content in machine)
if(machine_content.amount != machine_content.max_amount)
usr << "<span class='notice'>[machine_content.max_amount - machine_content.amount] of [machine_content.product_name]</span>"
machine_content.amount = machine_content.max_amount
refill.charges -= to_restock
total = to_restock
else
var/tmp_charges = refill.charges
for(var/datum/data/vending_product/machine_content in machine)
var/restock = Ceiling(((machine_content.max_amount - machine_content.amount)/to_restock)*tmp_charges)
if(restock > refill.charges)
restock = refill.charges
machine_content.amount += restock
refill.charges -= restock
total += restock
if(restock)
usr << "<span class='notice'>[restock] of [machine_content.product_name]</span>"
if(refill.charges == 0) //due to rounding, we ran out of refill charges, exit.
break
return total
/obj/machinery/vending/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/card/emag))
src.emagged = 1
@@ -163,9 +195,23 @@
else if(istype(W, /obj/item/weapon/card) && currently_vending)
var/obj/item/weapon/card/I = W
scan_card(I)
else if(istype(W, refill_canister) && refill_canister != null)
if(stat & (BROKEN|NOPOWER))
user << "<span class='notice'>It does nothing.</span>"
else if(panel_open)
//if the panel is open we attempt to refill the machine
var/obj/item/weapon/vending_refill/canister = W
if(canister.charges == 0)
user << "<span class='notice'>This [canister.name] is empty!</span>"
else
var/transfered = refill_inventory(canister,product_records,user)
if(transfered)
user << "<span class='notice'>You loaded [transfered] items in \the [name].</span>"
else
user << "<span class='notice'>The [name] is fully stocked.</span>"
return;
else
user << "<span class='notice'>You should probably unscrew the service panel first.</span>"
else
..()
@@ -542,7 +588,7 @@
vend_delay = 15
product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?"
product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!"
refill_canister = /obj/item/weapon/vending_refill/boozeomat
/obj/machinery/vending/assist
products = list( /obj/item/device/assembly/prox_sensor = 5,/obj/item/device/assembly/igniter = 3,/obj/item/device/assembly/signaler = 4,
/obj/item/weapon/wirecutters = 1, /obj/item/weapon/cartridge/signal = 4)
@@ -559,7 +605,7 @@
products = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 25,/obj/item/weapon/reagent_containers/food/drinks/tea = 25,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate = 25)
contraband = list(/obj/item/weapon/reagent_containers/food/drinks/ice = 10)
prices = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 25, /obj/item/weapon/reagent_containers/food/drinks/tea = 25, /obj/item/weapon/reagent_containers/food/drinks/h_chocolate = 25)
refill_canister = /obj/item/weapon/vending_refill/coffee
@@ -576,7 +622,7 @@
prices = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 20,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 30,/obj/item/weapon/reagent_containers/food/snacks/chips =25,
/obj/item/weapon/reagent_containers/food/snacks/sosjerky = 30,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 20,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 30,
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 25)
refill_canister = /obj/item/weapon/vending_refill/snack
/obj/machinery/vending/chinese
name = "Mr. Chang"
desc = "A self-serving chinese food machine, for all your chinese food needs."
@@ -600,7 +646,7 @@
prices = list(/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 20,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind = 20,
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb = 20,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist = 20,
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up = 20)
refill_canister = /obj/item/weapon/vending_refill/cola
//This one's from bay12
/obj/machinery/vending/cart
name = "PTech"
@@ -624,7 +670,7 @@
contraband = list(/obj/item/weapon/lighter/zippo = 4)
premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2)
prices = list(/obj/item/weapon/storage/fancy/cigarettes = 60,/obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 60)
refill_canister = /obj/item/weapon/vending_refill/cigarette
/obj/machinery/vending/medical
name = "NanoMed Plus"
@@ -749,7 +795,7 @@
/obj/item/clothing/head/rabbitears =1) //Pretty much everything that had a chance to spawn.
contraband = list(/obj/item/clothing/suit/cardborg = 1,/obj/item/clothing/head/cardborg = 1,/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1)
premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1)
refill_canister = /obj/item/weapon/vending_refill/autodrobe
/obj/machinery/vending/dinnerware
name = "Dinnerware"
desc = "A kitchen and restaurant equipment vendor"
@@ -820,7 +866,7 @@
/obj/machinery/vending/eva
name = "Hardsuit Kits"
desc = "Conversion kits for your alien hardsuit needs."
products = list(/obj/item/weapon/modkit/tajaran = 6)
products = list(/obj/item/weapon/modkit/tajaran = 6, /obj/item/weapon/modkit/unathi = 6)
/obj/machinery/vending/sustenance
+1 -1
View File
@@ -590,7 +590,7 @@
</head>
<body>
<iframe width='100%' height='97%' src="http://192.241.230.212/wiki/index.php/Space_law&printable=yes&remove_links=1" frameborder="0" id="main_frame"></iframe> </body>
<iframe width='100%' height='97%' src="http://192.241.230.212/wiki/index.php?title=Space_Law&printable=yes" frameborder="0" id="main_frame"></iframe> </body>
</html>
@@ -96,6 +96,18 @@
air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
return
/obj/item/weapon/tank/jetpack/oxygenblack
name = "Jetpack (Oxygen)"
desc = "A black tank of compressed oxygen for use as propulsion in zero-gravity areas. Use with caution."
icon_state = "jetpack-black"
item_state = "jetpack-black"
New()
..()
//src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
return
/obj/item/weapon/tank/jetpack/carbondioxide
name = "Jetpack (Carbon Dioxide)"
desc = "A tank of compressed carbon dioxide for use as propulsion in zero-gravity areas. Painted black to indicate that it should not be used as a source for internals."
@@ -0,0 +1,58 @@
/obj/item/weapon/vending_refill
name = "Resupply canister"
var/machine_name = "Generic"
icon = 'icons/obj/vending_restock.dmi'
icon_state = "refill_snack"
item_state = "restock_unit"
flags = FPRINT | TABLEPASS| CONDUCT
force = 7.0
throwforce = 15.0
throw_speed = 1
throw_range = 7
w_class = 4.0
var/charges = 0 //how many restocking "charges" the refill has
/obj/item/weapon/vending_refill/New()
..()
name = "\improper [machine_name] restocking unit"
/obj/item/weapon/vending_refill/examine()
set src in usr
..()
if(charges)
usr << "It can restock [charges] item(s)."
else
usr << "It's empty!"
//NOTE I decided to go for about 1/3 of a machine's capacity
/obj/item/weapon/vending_refill/boozeomat
machine_name = "Booze-O-Mat"
icon_state = "refill_booze"
charges = 50//of 138
/obj/item/weapon/vending_refill/coffee
machine_name = "hot drinks"
icon_state = "refill_joe"
charges = 30//of 85
/obj/item/weapon/vending_refill/snack
machine_name = "Getmore Chocolate Corp"
charges = 15//of 48
/obj/item/weapon/vending_refill/cola
machine_name = "Robust Softdrinks"
icon_state = "refill_cola"
charges = 20//of 65
/obj/item/weapon/vending_refill/cigarette
machine_name = "cigarette"
icon_state = "refill_smoke"
charges = 10// of 30
/obj/item/weapon/vending_refill/autodrobe
machine_name = "AutoDrobe"
icon_state = "refill_costume"
charges = 28// of 58
+13 -1
View File
@@ -6,6 +6,8 @@
var/health = 100
var/destroyed = 0
var/inertia_dir = 0
var/allowMove = 1
var/delay = 1
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread
/obj/structure/stool/bed/chair/cart/Move()
@@ -321,10 +323,15 @@
if((istype(src.loc, /turf/space)))
if(!src.Process_Spacemove(0)) return
if(istype(user.l_hand, /obj/item/key) || istype(user.r_hand, /obj/item/key))
if(!allowMove)
return
allowMove = 0
step(src, direction)
update_mob()
handle_rotation()
/*
sleep(delay)
allowMove = 1
/*
if(istype(src.loc, /turf/space) && (!src.Process_Spacemove(0, user)))
var/turf/space/S = src.loc
S.Entered(src)*/
@@ -353,6 +360,9 @@
if((istype(src.loc, /turf/space)))
if(!src.Process_Spacemove(0)) return
if(istype(user.l_hand, /obj/item/key) || istype(user.r_hand, /obj/item/key))
if(!allowMove)
return
allowMove = 0
step(src, direction)
// NEW PULLING CODE
if (istype(user.pulling, /obj/structure/stool/bed/roller))
@@ -362,6 +372,8 @@
// END NEW PULLING CODE
update_mob()
handle_rotation()
sleep(delay)
allowMove = 1
/*
if(istype(src.loc, /turf/space) && (!src.Process_Spacemove(0, user)))
var/turf/space/S = src.loc
+5 -1
View File
@@ -113,6 +113,10 @@ proc/increment_ert_chance()
ert_base_chance += 2
if(get_security_level() == "red")
ert_base_chance += 3
if(get_security_level() == "gamma")
ert_base_chance += 7
if(get_security_level() == "epsilon")
ert_base_chance += 9
if(get_security_level() == "delta")
ert_base_chance += 10 // Need those big guns
sleep(600 * 3) // Minute * Number of Minutes
@@ -321,7 +325,7 @@ proc/trigger_armed_response_team(var/force = 0)
W.name = "[real_name]'s ID Card ([W.assignment])"
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += get_all_centcom_access()
W.access += list(access_cent_general, access_cent_living, access_cent_storage)
equip_to_slot_or_del(W, slot_wear_id)
return 1
+8
View File
@@ -55,6 +55,7 @@
<A href='?src=\ref[src];secretscoder=maint_access_engiebrig'>Change all maintenance doors to engie/brig access only</A><BR>
<A href='?src=\ref[src];secretscoder=maint_access_brig'>Change all maintenance doors to brig access only</A><BR>
<A href='?src=\ref[src];secretscoder=infinite_sec'>Remove cap on security officers</A><BR>
<A href='?src=\ref[src];secretscoder=maint_access_engiebrig'>Change Security Level </A><BR>
<BR>
<B>Coder Secrets</B><BR>
<BR>
@@ -115,6 +116,13 @@
<A href='?src=\ref[src];secretsfun=fakeguns'>Make all items look like guns</A><BR>
<A href='?src=\ref[src];secretsfun=schoolgirl'>Japanese Animes Mode</A><BR>
<A href='?src=\ref[src];secretsfun=eagles'>Egalitarian Station Mode</A><BR>
<BR>
<A href='?src=\ref[src];secretsfun=securitylevel0'>Change Security Level To Green</A><BR>
<A href='?src=\ref[src];secretsfun=securitylevel1'>Change Security Level To Blue</A><BR>
<A href='?src=\ref[src];secretsfun=securitylevel2'>Change Security Level To Red</A><BR>
<A href='?src=\ref[src];secretsfun=securitylevel3'>Change Security Level To Gamma</A><BR>
<A href='?src=\ref[src];secretsfun=securitylevel4'>Change Security Level To Epsilon</A><BR>
<A href='?src=\ref[src];secretsfun=securitylevel5'>Change Security Level To Delta</A><BR>
"}
dat += "</center></body></html>"
var/datum/browser/popup = new(usr, "secrets", "<div align='center'>Admin Secrets</div>", 610, 650)
+19
View File
@@ -1894,6 +1894,7 @@
var/turf/loc = find_loc(H)
var/security = 0
if(loc.z > 1 || prisonwarped.Find(H))
//don't warp them if they aren't ready or are already there
continue
H.Paralyse(5)
@@ -2243,6 +2244,24 @@
feedback_add_details("admin_secrets_fun_used","OO")
usr.client.only_one()
// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
if("securitylevel0")
set_security_level(0)
message_admins("\blue [key_name_admin(usr)] change security level to Green.", 1)
if("securitylevel1")
set_security_level(1)
message_admins("\blue [key_name_admin(usr)] change security level to Blue.", 1)
if("securitylevel2")
set_security_level(2)
message_admins("\blue [key_name_admin(usr)] change security level to Red.", 1)
if("securitylevel3")
set_security_level(3)
message_admins("\blue [key_name_admin(usr)] change security level to Gamma.", 1)
if("securitylevel4")
set_security_level(4)
message_admins("\blue [key_name_admin(usr)] change security level to Epsilon.", 1)
if("securitylevel5")
set_security_level(5)
message_admins("\blue [key_name_admin(usr)] change security level to Delta.", 1)
if(usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if (ok)
+4 -3
View File
@@ -59,6 +59,7 @@
/obj/item/weapon/beach_ball/dodgeball
name = "dodgeball"
icon = 'icons/obj/basketball.dmi'
icon_state = "dodgeball"
item_state = "dodgeball"
desc = "Used for playing the most violent and degrading of childhood games."
@@ -66,14 +67,14 @@
/obj/item/weapon/beach_ball/dodgeball/throw_impact(atom/hit_atom)
if((ishuman(hit_atom)))
var/mob/living/carbon/M = hit_atom
if(dir==get_dir(src,M))
if(!dir&get_dir(src,M))
if(M.in_throw_mode && !M.get_active_hand()) //empty active hand and we're in throw mode
if(M.canmove && !M.restrained())
M.hitby(src)
else
playsound(src, 'sound/items/dodgeball.ogg', 50, 1)
visible_message("\red [M] HAS BEEN ELIMINATED!!", 3)
spawn(0)
/* spawn(0)
var/mobloc = get_turf(M.loc)
var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc )
animation.name = "water"
@@ -83,4 +84,4 @@
animation.icon_state = "liquify"
animation.layer = 5
// animation.master = holder
del(M)
del(M)*/
+83 -61
View File
@@ -51,50 +51,7 @@
item_state = "skrell_suit_black"
_color = "skrell_suit_black"
//Unathi space gear. Huge and restrictive.
/obj/item/clothing/head/helmet/space/unathi
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
var/up = 0 //So Unathi helmets play nicely with the weldervision check.
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/unathi/helmet_cheap
name = "NT breacher helmet"
desc = "Hey! Watch it with that thing! It's a knock-off of a Unathi battle-helm, and that spike could put someone's eye out."
icon_state = "unathi_helm_cheap"
item_state = "unathi_helm_cheap"
_color = "unathi_helm_cheap"
/obj/item/clothing/suit/space/unathi
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("Unathi")
/obj/item/clothing/suit/space/unathi/rig_cheap
name = "NT breacher chassis"
desc = "A cheap NT knock-off of a Unathi battle-rig. Looks like a fish, moves like a fish, steers like a cow."
icon_state = "rig-unathi-cheap"
item_state = "rig-unathi-cheap"
slowdown = 3
/obj/item/clothing/head/helmet/space/unathi/breacher
name = "breacher helm"
desc = "Weathered, ancient and battle-scarred. The helmet is too."
icon_state = "unathi_breacher"
item_state = "unathi_breacher"
_color = "unathi_breacher"
/obj/item/clothing/suit/space/unathi/breacher
name = "breacher chassis"
desc = "Huge, bulky and absurdly heavy. It must be like wearing a tank."
icon_state = "unathi_breacher"
item_state = "unathi_breacher"
_color = "unathi_breacher"
slowdown = 1
// Vox space gear (vaccuum suit, low pressure armour)
// Can't be equipped by any other species due to bone structure and vox cybernetics.
@@ -219,44 +176,109 @@
//Species-specific Syndicate rigs.
/obj/item/clothing/head/helmet/space/rig/syndi/tajara
icon_state = "rig0-syndie-taj"
item_state = "syndie_helm"
item_state = "rig0-syndie-taj"
_color = "syndie-taj"
species_restricted = list("Tajaran")
/obj/item/clothing/suit/space/rig/syndi/tajara
item_state = "syndie_hardsuit"
item_state = "rig-syndie-taj"
icon_state = "rig-syndie-taj"
species_restricted = list("Tajaran")
/obj/item/clothing/head/helmet/space/rig/syndi/unathi
icon_state = "rig0-syndie-unathi"
item_state = "syndie_helm"
_color = "syndie-unathi"
species_restricted = list("Unathi")
/obj/item/clothing/suit/space/rig/syndi/unathi
item_state = "syndie_hardsuit"
icon_state = "rig-syndie-unathi"
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/rig/syndi/skrell
icon_state = "rig0-syndie-skrell"
item_state = "syndie_helm"
item_state = "rig0-syndie-skrell"
_color = "syndie-skrell"
species_restricted = list("Skrell")
/obj/item/clothing/suit/space/rig/syndi/skrell
item_state = "syndie_hardsuit"
item_state = "rig-syndie-skrell"
icon_state = "rig-syndie-skrell"
species_restricted = list("Skrell")
/obj/item/clothing/head/helmet/space/rig/syndi/human
icon_state = "rig0-syndie-human"
item_state = "syndie_helm"
item_state = "rig0-syndie-human"
_color = "syndie-human"
species_restricted = list("Human")
/obj/item/clothing/suit/space/rig/syndi/human
item_state = "syndie_hardsuit"
item_state = "rig-syndie-human"
icon_state = "rig-syndie-human"
species_restricted = list("Human")
species_restricted = list("Human")
////////////////UNATHI/////////////////////
/obj/item/clothing/suit/space/rig/unathi
icon_state = "rig-unathi-engineering"
item_state = "rig_unathi-engineering"
species_restricted = list("Unathi")
/obj/item/clothing/suit/space/rig/security/unathi
icon_state = "rig-unathi-sec"
item_state = "rig-unathi-sec"
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/rig/unathi
icon_state = "rig0-unathi-engineering"
item_state = "rig0-unathi-engineering"
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/rig/security/unathi
icon_state = "rig0-unathi-sec"
item_state = "rig0-unathi-sec"
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/rig/syndi/unathi
icon_state = "rig0-syndie-unathi"
item_state = "rig0-syndie-unathi"
_color = "syndie-unathi"
species_restricted = list("Unathi")
/obj/item/clothing/suit/space/rig/syndi/unathi
item_state = "rig-syndie-unathi"
icon_state = "rig-syndie-unathi"
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/unathi
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
var/up = 0 //So Unathi helmets play nicely with the weldervision check.
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/unathi/helmet_cheap
name = "NT breacher helmet"
desc = "Hey! Watch it with that thing! It's a knock-off of a Unathi battle-helm, and that spike could put someone's eye out."
icon_state = "unathi_helm_cheap"
item_state = "unathi_helm_cheap"
_color = "unathi_helm_cheap"
/obj/item/clothing/suit/space/unathi
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("Unathi")
/obj/item/clothing/suit/space/unathi/rig_cheap
name = "NT breacher chassis"
desc = "A cheap NT knock-off of a Unathi battle-rig. Looks like a fish, moves like a fish, steers like a cow."
icon_state = "rig-unathi-cheap"
item_state = "rig-unathi-cheap"
slowdown = 3
/obj/item/clothing/head/helmet/space/unathi/breacher
name = "breacher helm"
desc = "Weathered, ancient and battle-scarred. The helmet is too."
icon_state = "unathi_breacher"
item_state = "unathi_breacher"
_color = "unathi_breacher"
/obj/item/clothing/suit/space/unathi/breacher
name = "breacher chassis"
desc = "Huge, bulky and absurdly heavy. It must be like wearing a tank."
icon_state = "unathi_breacher"
item_state = "unathi_breacher"
_color = "unathi_breacher"
slowdown = 1
+46 -1
View File
@@ -1,11 +1,17 @@
//Species modification item.
/obj/item/weapon/modkit/tajaran
name = "hardsuit modification kit"
name = "tajaran hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another species. This one looks like it's meant for Tajara."
icon = 'icons/obj/custom_items.dmi'
icon_state = "royce_kit"
/obj/item/weapon/modkit/unathi
name = "Unathi hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another species. This one looks like it's meant for Unathi."
icon = 'icons/obj/custom_items.dmi'
icon_state = "royce_kit"
/obj/item/clothing/head/helmet/space/rig/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I,/obj/item/weapon/modkit/tajaran))
user.drop_item()
@@ -15,6 +21,14 @@
del(I)
del(src)
return
if(istype(I,/obj/item/weapon/modkit/unathi))
user.drop_item()
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user << "\red You painstakingly modify [src] to make it more suitable for a Tajaran user."
new /obj/item/clothing/head/helmet/space/rig/unathi(user.loc)
del(I)
del(src)
return
..()
/obj/item/clothing/suit/space/rig/attackby(obj/item/I as obj, mob/user as mob)
@@ -26,6 +40,14 @@
del(I)
del(src)
return
if(istype(I,/obj/item/weapon/modkit/unathi))
user.drop_item()
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user << "\red You painstakingly modify [src] to make it more suitable for a Tajaran user."
new /obj/item/clothing/suit/space/rig/unathi(user.loc)
del(I)
del(src)
return
..()
@@ -207,6 +229,29 @@
allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/melee/baton)
siemens_coefficient = 0.7
/obj/item/clothing/head/helmet/space/rig/security/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I,/obj/item/weapon/modkit/unathi))
user.drop_item()
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user << "\red You painstakingly modify [src] to make it more suitable for a Unathi user."
new /obj/item/clothing/head/helmet/space/rig/security/unathi(user.loc)
del(I)
del(src)
return
..()
/obj/item/clothing/suit/space/rig/security/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I,/obj/item/weapon/modkit/unathi))
user.drop_item()
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user << "\red You painstakingly modify [src] to make it more suitable for a Unathi user."
new /obj/item/clothing/suit/space/rig/security/unathi(user.loc)
del(I)
del(src)
return
..()
//Atmospherics Rig (BS12)
/obj/item/clothing/head/helmet/space/rig/atmos
+1 -1
View File
@@ -8,7 +8,7 @@
/datum/event/blob/announce()
command_alert("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('sound/AI/outbreak7.ogg')
score_eventsendured++
/datum/event/blob/start()
var/turf/T = pick(blobstart)
+1 -1
View File
@@ -10,7 +10,7 @@
/datum/event/carp_migration/announce()
command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert")
score_eventsendured++
/datum/event/carp_migration/start()
for(var/obj/effect/landmark/C in landmarks_list)
if(C.name == "carpspawn")
+1
View File
@@ -10,3 +10,4 @@
A << "<br>"
for(var/obj/machinery/telecomms/T in telecomms_list)
T.emp_act(1)
score_eventsendured++
@@ -17,4 +17,5 @@
/datum/event/communications_blackout/start()
for(var/obj/machinery/telecomms/T in telecomms_list)
T.emp_act(1)
T.emp_act(1)
score_eventsendured++
+1 -1
View File
@@ -6,7 +6,7 @@
/datum/event/disease_outbreak/announce()
command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('sound/AI/outbreak7.ogg')
score_eventsendured++
/datum/event/disease_outbreak/setup()
announceWhen = rand(15, 30)
+1 -1
View File
@@ -5,7 +5,7 @@
/datum/event/electrical_storm/announce()
command_alert("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert")
score_eventsendured++
/datum/event/electrical_storm/start()
var/list/epicentreList = list()
+1 -1
View File
@@ -11,6 +11,6 @@
command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Automated Grid Check")
for(var/mob/M in player_list)
M << sound('sound/AI/poweroff.ogg')
score_eventsendured++
/datum/event/grid_check/end()
power_restore()
+2 -2
View File
@@ -92,7 +92,7 @@
turfs.Remove(T)
num--
if(vermin == VERM_SPIDERS)
var/obj/effect/spider/spiderling/S = new(T)
S.amount_grown = -1
@@ -103,7 +103,7 @@
/datum/event/infestation/announce()
command_alert("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation")
score_eventsendured++
#undef LOC_KITCHEN
#undef LOC_ATMOS
#undef LOC_INCIN
+1 -1
View File
@@ -47,7 +47,7 @@
target << "\red <b>You have detected a change in your laws information:</b>"
target << law
target.add_ion_law(law)
score_eventsendured++
/datum/event/ionstorm/tick()
if(botEmagChance)
for(var/obj/machinery/bot/bot in world)
+1 -1
View File
@@ -11,7 +11,7 @@
/datum/event/meteor_wave/announce()
command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert")
world << sound('sound/AI/meteors.ogg')
score_eventsendured++
/datum/event/meteor_wave/tick()
if(IsMultiple(activeFor, 3))
spawn_meteors(rand(2,5))
+1 -1
View File
@@ -56,7 +56,7 @@
for (var/mob/O in hearers(5, Console.loc))
O.show_message(text("\icon[Console] *The Requests Console beeps: 'PRIORITY Alert in [my_department]'"))
Console.messages += "<B><FONT color='red'>High Priority message from [my_department]</FONT></B><BR>[sending]"
score_eventsendured++
/datum/event/money_hacker/tick()
if(world.time > time_start + time_duration)
var/message
+1
View File
@@ -38,3 +38,4 @@
for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
NEWSCASTER.newsAlert("Tau Ceti Daily")
score_eventsendured++
+1 -1
View File
@@ -9,7 +9,7 @@
if(MS.active)
useMS = MS
break
score_eventsendured++
/datum/event/pda_spam/tick()
if(!useMS || !useMS.active)
useMS = null
+1 -1
View File
@@ -9,7 +9,7 @@ datum/event/organ_failure/setup()
datum/event/organ_failure/announce()
command_alert("Confirmed outbreak of level [rand(3,7)] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('sound/AI/outbreak5.ogg')
score_eventsendured++
datum/event/organ_failure/start()
var/list/candidates = list() //list of candidate keys
for(var/mob/living/carbon/human/G in player_list)
+1 -1
View File
@@ -20,7 +20,7 @@
else
world.log << "ERROR: Could not initate grey-tide. Unable find prison or brig area."
kill()
score_eventsendured++
/datum/event/prison_break/start()
for(var/area/A in world)
+1 -1
View File
@@ -13,7 +13,7 @@
/datum/event/radiation_storm/announce()
// Don't do anything, we want to pack the announcement with the actual event
score_eventsendured++
/datum/event/radiation_storm/proc/is_safe_zone(var/area/A)
for(var/szt in safe_zones)
if(istype(A, szt))
+1 -1
View File
@@ -31,7 +31,7 @@
else
msg = "Unidentified hackers have targetted a combat drone wing deployed from the NMV Icarus. If any are sighted in the area, approach with caution."
command_alert(msg, "Rogue drone alert")
score_eventsendured++
/datum/event/rogue_drone/tick()
return
+1 -1
View File
@@ -4,7 +4,7 @@
else
command_alert("Meaty ores have been detected on collision course with the station.", "Meaty Ore Alert")
world << sound('sound/AI/meteors.ogg')
score_eventsendured++
/datum/event/dust/meaty/setup()
qnty = rand(45,125)
+1 -1
View File
@@ -7,7 +7,7 @@
/datum/event/ghosts/announce()
command_alert("Unknown quasi-aetheric entities have been detected near [station_name()], please stand-by.", "Lifesign Alert?")
score_eventsendured++
/datum/event/ghosts/start()
var/p = 100
+1
View File
@@ -38,3 +38,4 @@
announce()
for(var/mob/living/M in player_list)
M << "You feel [pick("a chill","a deathly chill","the undead","dirty", "creeped out","afraid","fear")]!"
score_eventsendured++
+1 -1
View File
@@ -8,7 +8,7 @@
/datum/event/weightless/announce()
command_alert("Warning: Failsafes for the station's artificial gravity arrays have been triggered. Please be aware that if this problem recurs it may result in formation of gravitational anomalies. Nanotrasen wishes to remind you that the unauthorised formation of anomalies within Nanotrasen facilities is strictly prohibited by health and safety regulation [rand(99,9999)][pick("a","b","c")]:subclause[rand(1,20)][pick("a","b","c")].")
score_eventsendured++
/datum/event/weightless/start()
for(var/area/A in world)
if (A.z != 1) continue //Don't turn off gravity on non-station z-levels.
+1 -1
View File
@@ -25,7 +25,7 @@
for(var/mob/M in player_list)
if(!istype(M, /mob/new_player))
M << sound('sound/AI/spanomalies.ogg')
score_eventsendured++
/datum/event/wormholes/tick()
if(activeFor % shift_frequency == 0)
for(var/obj/effect/portal/wormhole/O in wormholes)
@@ -11,3 +11,4 @@
D.affected_mob = H
H.viruses += D
break
score_eventsendured++
@@ -17,7 +17,7 @@
if(successSpawn)
command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert")
world << sound('sound/AI/aliens.ogg')
score_eventsendured++
/datum/event/alien_infestation/start()
var/list/vents = list()
+1 -1
View File
@@ -9,7 +9,7 @@
/datum/event/anomaly/announce()
command_alert("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert")
score_eventsendured++
/datum/event/anomaly/start()
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
@@ -6,7 +6,7 @@
/datum/event/anomaly/anomaly_bluespace/announce()
command_alert("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
score_eventsendured++
/datum/event/anomaly/anomaly_bluespace/start()
var/turf/T = pick(get_area_turfs(impact_area))
+1 -1
View File
@@ -8,7 +8,7 @@
/datum/event/anomaly/anomaly_flux/announce()
command_alert("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
score_eventsendured++
/datum/event/anomaly/anomaly_flux/start()
var/turf/T = pick(get_area_turfs(impact_area))
+1 -1
View File
@@ -8,7 +8,7 @@
/datum/event/anomaly/anomaly_grav/announce()
command_alert("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
score_eventsendured++
/datum/event/anomaly/anomaly_grav/start()
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
+1 -1
View File
@@ -8,7 +8,7 @@
/datum/event/anomaly/anomaly_pyro/announce()
command_alert("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert")
score_eventsendured++
/datum/event/anomaly/anomaly_pyro/start()
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
@@ -8,7 +8,7 @@
/datum/event/anomaly/anomaly_vortex/announce()
command_alert("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert")
score_eventsendured++
/datum/event/anomaly/anomaly_vortex/start()
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
@@ -9,7 +9,7 @@
/datum/event/brand_intelligence/announce()
command_alert("Rampant brand intelligence has been detected aboard [station_name()], please stand-by. The origin is believed to be \a [originMachine.name].", "Machine Learning Alert")
score_eventsendured++
/datum/event/brand_intelligence/start()
for(var/obj/machinery/vending/V in machines)
+1 -1
View File
@@ -9,7 +9,7 @@
/datum/event/dust/start()
while(qnty-- > 0)
new /obj/effect/space_dust/weak()
score_eventsendured++
/obj/effect/space_dust
name = "Space Dust"
@@ -1,3 +1,4 @@
/datum/event/mass_hallucination/start()
for(var/mob/living/carbon/C in living_mob_list)
C.hallucination += rand(20, 50)
C.hallucination += rand(20, 50)
score_eventsendured++
+1 -1
View File
@@ -18,7 +18,7 @@
var/turf/simulated/floor/T = pick(turfs)
spawn(0) new/obj/effect/spacevine_controller(T) //spawn a controller at turf
spacevines_spawned = 1
score_eventsendured++
@@ -14,7 +14,7 @@
/datum/event/spider_infestation/announce()
command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert")
world << sound('sound/AI/aliens.ogg')
score_eventsendured++
/datum/event/spider_infestation/start()
var/list/vents = list()
+1 -1
View File
@@ -8,7 +8,7 @@
/datum/event/vent_clog/announce()
command_alert("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert")
score_eventsendured++
/datum/event/vent_clog/setup()
endWhen = rand(25, 100)
+1 -1
View File
@@ -10,7 +10,7 @@ datum/event/viral_infection/setup()
datum/event/viral_infection/announce()
command_alert("Confirmed outbreak of level five biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('sound/AI/outbreak5.ogg')
score_eventsendured++
datum/event/viral_infection/start()
var/list/candidates = list() //list of candidate keys
for(var/mob/living/carbon/human/G in player_list)
+1 -1
View File
@@ -10,7 +10,7 @@ datum/event/viral_outbreak/setup()
datum/event/viral_outbreak/announce()
command_alert("Confirmed outbreak of level 7 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('sound/AI/outbreak7.ogg')
score_eventsendured++
datum/event/viral_outbreak/start()
var/list/candidates = list() //list of candidate keys
for(var/mob/living/carbon/human/G in player_list)
+1 -1
View File
@@ -11,7 +11,7 @@ datum/event/wallrot/setup()
datum/event/wallrot/announce()
command_alert("Harmful fungi detected on station. Station structures may be contaminated.", "Biohazard Alert")
score_eventsendured++
datum/event/wallrot/start()
spawn()
var/turf/center = null
+7 -7
View File
@@ -334,24 +334,24 @@
//Throwing stuff
/mob/living/carbon/proc/toggle_throw_mode()
if (src.in_throw_mode)
if (in_throw_mode)
throw_mode_off()
else
throw_mode_on()
/mob/living/carbon/proc/throw_mode_off()
src.in_throw_mode = 0
src.throw_icon.icon_state = "act_throw_off"
in_throw_mode = 0
throw_icon.icon_state = "act_throw_off"
/mob/living/carbon/proc/throw_mode_on()
src.in_throw_mode = 1
src.throw_icon.icon_state = "act_throw_on"
in_throw_mode = 1
throw_icon.icon_state = "act_throw_on"
/mob/proc/throw_item(atom/target)
return
/mob/living/carbon/throw_item(atom/target)
src.throw_mode_off()
throw_mode_off()
if(usr.stat || !target)
return
if(target.type == /obj/screen) return
@@ -382,7 +382,7 @@
update_icons()
if (istype(usr, /mob/living/carbon)) //Check if a carbon mob is throwing. Modify/remove this line as required.
item.loc = src.loc
item.loc = usr.loc
if(src.client)
src.client.screen -= item
if(istype(item, /obj/item))
@@ -1,12 +1,17 @@
/mob/living/carbon/hitby(atom/movable/AM, skip)
if(!skip) //ugly, but easy
if(in_throw_mode && !get_active_hand()) //empty active hand and we're in throw mode
if(canmove && !restrained())
if(istype(AM, /obj/item))
var/obj/item/I = AM
if(isturf(I.loc))
put_in_active_hand(I)
visible_message("<span class='warning'>[src] catches [I]!</span>")
throw_mode_off()
return
/mob/living/carbon/hitby(atom/movable/AM)
// if(!skip) //ugly, but easy
// message_admins("Skip Check Passed")
if(in_throw_mode && !get_active_hand()) //empty active hand and we're in throw mode
message_admins("In Throw Mode and active hand check passed")
if(canmove && !restrained())
message_admins("Restrained/moving check passed")
if(istype(AM, /obj/item))
message_admins("Item check passed")
var/obj/item/I = AM
if(isturf(I.loc))
message_admins("Turf check passed")
put_in_active_hand(I)
visible_message("<span class='warning'>[src] catches [I]!</span>")
throw_mode_off()
return
..()
@@ -10,7 +10,6 @@
var/sight_mode = 0
var/custom_name = ""
var/custom_sprite = 0 //Due to all the sprites involved, a var for our custom borgs may be best
var/crisis //Admin-settable for combat module use.
//Hud stuff
@@ -153,7 +152,7 @@
return
var/list/modules = list("Standard", "Engineering", "Medical", "Miner", "Janitor", "Service", "Security")
if(crisis && security_level == SEC_LEVEL_RED) //Leaving this in until it's balanced appropriately.
if(security_level >= SEC_LEVEL_RED)
src << "\red Crisis mode active. Combat module available."
modules+="Combat"
if(mmi != null && mmi.alien)
@@ -2,7 +2,9 @@
//0 = code green
//1 = code blue
//2 = code red
//3 = code delta
//3 = gamma
//4 = epsilon
//5 = code delta
//config.alert_desc_blue_downto
@@ -14,6 +16,10 @@
level = SEC_LEVEL_BLUE
if("red")
level = SEC_LEVEL_RED
if("gamma")
level = SEC_LEVEL_GAMMA
if("epsilon")
level = SEC_LEVEL_EPSILON
if("delta")
level = SEC_LEVEL_DELTA
@@ -48,7 +54,11 @@
world << "<font size=4 color='red'>Attention! Code red!</font>"
world << "<font color='red'>[config.alert_desc_red_downto]</font>"
security_level = SEC_LEVEL_RED
var/obj/machinery/door/airlock/highsecurity/red/R = locate(/obj/machinery/door/airlock/highsecurity/red) in world
message_admins("Found [R]")
if(R && R.z == 1)
R.locked = 0
R.update_icon()
/* - At the time of commit, setting status displays didn't work properly
var/obj/machinery/computer/communications/CC = locate(/obj/machinery/computer/communications,world)
if(CC)
@@ -59,6 +69,26 @@
FA.overlays = list()
FA.overlays += image('icons/obj/monitors.dmi', "overlay_red")
if(SEC_LEVEL_GAMMA)
world << "<font size=4 color='red'>Attention! GAMMA security level activated!</font>"
world << "<font color='red'>[config.alert_desc_red_upto]</font>"
if(security_level < SEC_LEVEL_RED)
for(var/obj/machinery/door/airlock/highsecurity/red/R in world)
if(R.z == 1)
R.locked = 0
R.update_icon()
for(var/obj/machinery/door/airlock/hatch/gamma/H in world)
if(H.z == 1)
H.open()
spawn(10)
H.locked = 1
H.update_icon()
security_level = SEC_LEVEL_GAMMA
if(SEC_LEVEL_EPSILON)
world << "<font size=4 color='red'>Attention! EPSILON security level activated!</font>"
world << "<font color='red'>[config.alert_desc_red_upto]</font>"
security_level = SEC_LEVEL_EPSILON
if(SEC_LEVEL_DELTA)
world << "<font size=4 color='red'>Attention! Delta security level reached!</font>"
world << "<font color='red'>[config.alert_desc_delta]</font>"
@@ -78,6 +108,10 @@
return "blue"
if(SEC_LEVEL_RED)
return "red"
if(SEC_LEVEL_GAMMA)
return "gamma"
if(SEC_LEVEL_EPSILON)
return "epsilon"
if(SEC_LEVEL_DELTA)
return "delta"
@@ -89,6 +123,10 @@
return "blue"
if(SEC_LEVEL_RED)
return "red"
if(SEC_LEVEL_GAMMA)
return "gamma"
if(SEC_LEVEL_EPSILON)
return "epsilon"
if(SEC_LEVEL_DELTA)
return "delta"
@@ -100,6 +138,10 @@
return SEC_LEVEL_BLUE
if("red")
return SEC_LEVEL_RED
if("gamma")
return SEC_LEVEL_GAMMA
if("epsilon")
return SEC_LEVEL_EPSILON
if("delta")
return SEC_LEVEL_DELTA
+3 -1
View File
@@ -473,7 +473,9 @@ var/static/list/scarySounds = list('sound/weapons/thudswoosh.ogg','sound/weapons
#define SEC_LEVEL_GREEN 0
#define SEC_LEVEL_BLUE 1
#define SEC_LEVEL_RED 2
#define SEC_LEVEL_DELTA 3
#define SEC_LEVEL_GAMMA 3
#define SEC_LEVEL_EPSILON 4
#define SEC_LEVEL_DELTA 5
#define TRANSITIONEDGE 7 //Distance from edge to move to another z-level