mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 14:07:51 +01:00
merge fixes
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user