mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Fixed a long-lasting error with vending machine in toxins, fixed/added atmos setting editor in game.
This commit is contained in:
@@ -49,20 +49,39 @@ atom/movable/RepelAirflowDest(n)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
vs_control/var
|
vs_control/var
|
||||||
|
|
||||||
airflow_lightest_pressure = 30
|
airflow_lightest_pressure = 30
|
||||||
|
airflow_lightest_pressure_NAME = "Airflow - Small Movement Threshold %"
|
||||||
|
airflow_lightest_pressure_DESC = "Percent of 1 Atm. at which items with the small weight classes will move."
|
||||||
airflow_light_pressure = 45
|
airflow_light_pressure = 45
|
||||||
airflow_medium_pressure = 60
|
airflow_light_pressure_NAME = "Airflow - Medium Movement Threshold %"
|
||||||
airflow_heavy_pressure = 75
|
airflow_light_pressure_DESC = "Percent of 1 Atm. at which items with the medium weight classes will move."
|
||||||
airflow_heaviest_pressure = 90
|
airflow_medium_pressure = 90
|
||||||
|
airflow_medium_pressure_NAME = "Airflow - Heavy Movement Threshold %"
|
||||||
airflow_damage = 0.3
|
airflow_medium_pressure_DESC = "Percent of 1 Atm. at which items with the largest weight classes will move."
|
||||||
|
airflow_heavy_pressure = 90
|
||||||
|
airflow_heavy_pressure_NAME = "Airflow - Dense Movement Threshold %"
|
||||||
|
airflow_heavy_pressure_DESC = "Percent of 1 Atm. at which items with canisters and closets will move."
|
||||||
|
airflow_heaviest_pressure = 95
|
||||||
|
airflow_heaviest_pressure_NAME = "Airflow - Human Movement Threshold % (Mob Stunning)"
|
||||||
|
airflow_heaviest_pressure_DESC = "Percent of 1 Atm. at which mobs will be shifted by airflow. (Mob Stunning)"
|
||||||
|
airflow_stun_cooldown = 60
|
||||||
|
airflow_stun_cooldown_NAME = "Aiflow Stunning - Cooldown"
|
||||||
|
airflow_stun_cooldown_DESC = "How long, in tenths of a second, to wait before stunning them again."
|
||||||
airflow_stun = 0.15
|
airflow_stun = 0.15
|
||||||
airflow_speed_decay = 1
|
airflow_stun_NAME = "Airflow Impact - Stunning"
|
||||||
airflow_delay = 30 //Time in deciseconds before they can be moved by airflow again.
|
airflow_stun_DESC = "How much a mob is stunned when hit by an object."
|
||||||
airflow_mob_slowdown = 1 //Time in tenths of a second to add as a delay to each movement by a mob.\
|
airflow_damage = 0.3
|
||||||
Only active if they are fighting the pull of the airflow.
|
airflow_damage_NAME = "Airflow Impact - Damage"
|
||||||
airflow_stun_cooldown = 10 //How long, in tenths of a second, to wait before stunning them again.
|
airflow_damage_DESC = "Damage from airflow impacts."
|
||||||
|
airflow_speed_decay = 1.5
|
||||||
|
airflow_speed_decay_NAME = "Airflow Speed Decay"
|
||||||
|
airflow_speed_decay_DESC = "How rapidly the speed gained from airflow decays."
|
||||||
|
airflow_delay = 30
|
||||||
|
airflow_delay_NAME = "Airflow Retrigger Delay"
|
||||||
|
airflow_delay_DESC = "Time in deciseconds before things can be moved by airflow again."
|
||||||
|
airflow_mob_slowdown = 1
|
||||||
|
airflow_mob_slowdown_NAME = "Airflow Slowdown"
|
||||||
|
airflow_mob_slowdown_DESC = "Time in tenths of a second to add as a delay to each movement by a mob if they are fighting the pull of the airflow."
|
||||||
|
|
||||||
mob/var/last_airflow_stun = 0
|
mob/var/last_airflow_stun = 0
|
||||||
mob/proc/airflow_stun()
|
mob/proc/airflow_stun()
|
||||||
@@ -254,7 +273,7 @@ atom/movable
|
|||||||
if(src:shoes)
|
if(src:shoes)
|
||||||
if(src:shoes.type == /obj/item/clothing/shoes/magboots && src:shoes.flags & NOSLIP) return
|
if(src:shoes.type == /obj/item/clothing/shoes/magboots && src:shoes.flags & NOSLIP) return
|
||||||
src << "\red You are sucked away by airflow!"
|
src << "\red You are sucked away by airflow!"
|
||||||
airflow_speed = min(round(n)/max(sqrt(get_dist(src,airflow_dest)),1),9)
|
airflow_speed = min(round(n)/max(get_dist(src,airflow_dest)/2,1),9)
|
||||||
var
|
var
|
||||||
xo = airflow_dest.x - src.x
|
xo = airflow_dest.x - src.x
|
||||||
yo = airflow_dest.y - src.y
|
yo = airflow_dest.y - src.y
|
||||||
@@ -304,7 +323,7 @@ atom/movable
|
|||||||
if(src:shoes)
|
if(src:shoes)
|
||||||
if(src:shoes.type == /obj/item/clothing/shoes/magboots && src:shoes.flags & NOSLIP) return
|
if(src:shoes.type == /obj/item/clothing/shoes/magboots && src:shoes.flags & NOSLIP) return
|
||||||
src << "\red You are pushed away by airflow!"
|
src << "\red You are pushed away by airflow!"
|
||||||
airflow_speed = min(round(n)/max(sqrt(get_dist(src,airflow_dest)),1),9)
|
airflow_speed = min(round(n)/max(get_dist(src,airflow_dest)/2,1),9)
|
||||||
var
|
var
|
||||||
xo = -(airflow_dest.x - src.x)
|
xo = -(airflow_dest.x - src.x)
|
||||||
yo = -(airflow_dest.y - src.y)
|
yo = -(airflow_dest.y - src.y)
|
||||||
@@ -348,14 +367,14 @@ atom/movable/proc/airflow_hit(atom/A)
|
|||||||
|
|
||||||
mob/airflow_hit(atom/A)
|
mob/airflow_hit(atom/A)
|
||||||
for(var/mob/M in hearers(src))
|
for(var/mob/M in hearers(src))
|
||||||
M.show_message("\red <B>[src] slams into [A]!</B>",1,"\red You hear a loud slam!",2)
|
M.show_message("\red <B>\The [src] slams into \a [A]!</B>",1,"\red You hear a loud slam!",2)
|
||||||
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
||||||
weakened = max(weakened, (istype(A,/obj/item) ? A:w_class : rand(1,5))) //Heheheh
|
weakened = max(weakened, (istype(A,/obj/item) ? A:w_class : rand(1,5))) //Heheheh
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
obj/airflow_hit(atom/A)
|
obj/airflow_hit(atom/A)
|
||||||
for(var/mob/M in hearers(src))
|
for(var/mob/M in hearers(src))
|
||||||
M.show_message("\red <B>[src] slams into [A]!</B>",1,"\red You hear a loud slam!",2)
|
M.show_message("\red <B>\The [src] slams into \a [A]!</B>",1,"\red You hear a loud slam!",2)
|
||||||
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
playsound(src.loc, "smash.ogg", 25, 1, -1)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
@@ -390,11 +409,9 @@ mob/living/carbon/human/airflow_hit(atom/A)
|
|||||||
stunned += round(airflow_speed * vsc.airflow_stun/2)
|
stunned += round(airflow_speed * vsc.airflow_stun/2)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
var/list/airflow_forbidden = list(/obj/structure/ore_box, /mob/aiEye)
|
|
||||||
|
|
||||||
zone/proc/movables()
|
zone/proc/movables()
|
||||||
. = list()
|
. = list()
|
||||||
for(var/turf/T in contents)
|
for(var/turf/T in contents)
|
||||||
for(var/atom/A in T)
|
for(var/atom/A in T)
|
||||||
if(!(locate(A) in airflow_forbidden))
|
if(istype(A, /mob/aiEye)) continue
|
||||||
. += A
|
. += A
|
||||||
@@ -13,6 +13,7 @@ Attach to transfer valve and open. BOOM.
|
|||||||
|
|
||||||
|
|
||||||
vs_control/var/IgnitionLevel = 0.5 //Moles of oxygen+plasma - co2 needed to burn.
|
vs_control/var/IgnitionLevel = 0.5 //Moles of oxygen+plasma - co2 needed to burn.
|
||||||
|
vs_control/var/IgnitionLeve_DESC = "Moles of oxygen+plasma - co2 needed to burn."
|
||||||
|
|
||||||
//Some legacy definitions so fires can be started.
|
//Some legacy definitions so fires can be started.
|
||||||
atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ vs_control
|
|||||||
else
|
else
|
||||||
vw = vars[ch]
|
vw = vars[ch]
|
||||||
if("[ch]_DESC" in vars) vw_desc = vars["[ch]_DESC"]
|
if("[ch]_DESC" in vars) vw_desc = vars["[ch]_DESC"]
|
||||||
if("[ch]_NAME" in plc.vars) vw_name = vars["[ch]_NAME"]
|
if("[ch]_NAME" in vars) vw_name = vars["[ch]_NAME"]
|
||||||
dat += "<b>[vw_name] = [vw]</b> <A href='?src=\ref[src];changevar=[ch]'>\[Change\]</A><br>"
|
dat += "<b>[vw_name] = [vw]</b> <A href='?src=\ref[src];changevar=[ch]'>\[Change\]</A><br>"
|
||||||
dat += "<i>[vw_desc]</i><br><br>"
|
dat += "<i>[vw_desc]</i><br><br>"
|
||||||
user << browse(dat,"window=settings")
|
user << browse(dat,"window=settings")
|
||||||
@@ -114,7 +114,11 @@ vs_control
|
|||||||
plc.Randomize(V)
|
plc.Randomize(V)
|
||||||
////world << "Plasma randomized."
|
////world << "Plasma randomized."
|
||||||
|
|
||||||
proc/SetDefault(def)
|
proc/SetDefault(var/mob/user)
|
||||||
|
var/list/setting_choices = list("Original", "Hazard - Low", "Hazard - High", "Oh Shit!")
|
||||||
|
var/def = input(user, "Which of these presets should be used?") as null|anything in setting_choices
|
||||||
|
if(!def)
|
||||||
|
return
|
||||||
switch(def)
|
switch(def)
|
||||||
if("Original")
|
if("Original")
|
||||||
plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth.
|
plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth.
|
||||||
|
|||||||
@@ -372,6 +372,7 @@
|
|||||||
desc = "All the fine parts you need in one vending machine!"
|
desc = "All the fine parts you need in one vending machine!"
|
||||||
product_hidden = ""
|
product_hidden = ""
|
||||||
product_hideamt = ""
|
product_hideamt = ""
|
||||||
|
points = 40
|
||||||
product_paths = "/obj/item/clothing/under/rank/scientist;/obj/item/clothing/suit/bio_suit;/obj/item/clothing/head/bio_hood;/obj/item/device/transfer_valve;/obj/item/device/assembly/signaler;/obj/item/device/assembly/prox_sensor;/obj/item/device/assembly/igniter;/obj/item/device/assembly/timer"
|
product_paths = "/obj/item/clothing/under/rank/scientist;/obj/item/clothing/suit/bio_suit;/obj/item/clothing/head/bio_hood;/obj/item/device/transfer_valve;/obj/item/device/assembly/signaler;/obj/item/device/assembly/prox_sensor;/obj/item/device/assembly/igniter;/obj/item/device/assembly/timer"
|
||||||
// product_amounts = "6;6;6;6;6"
|
// product_amounts = "6;6;6;6;6"
|
||||||
product_prices = "1;2;2;2;2;2;2;2"
|
product_prices = "1;2;2;2;2;2;2;2"
|
||||||
@@ -431,6 +432,7 @@
|
|||||||
name = "Toxins Charge"
|
name = "Toxins Charge"
|
||||||
charge_type = "toxins"
|
charge_type = "toxins"
|
||||||
icon_state = "toxins-charge"
|
icon_state = "toxins-charge"
|
||||||
|
charge_amt = 40
|
||||||
|
|
||||||
/obj/item/weapon/vending_charge/robotics
|
/obj/item/weapon/vending_charge/robotics
|
||||||
name = "Robotics Charge"
|
name = "Robotics Charge"
|
||||||
|
|||||||
@@ -1577,6 +1577,7 @@ var/global/BSACooldown = 0
|
|||||||
return
|
return
|
||||||
alert("Cannot make this mob a traitor! It has no mind!")
|
alert("Cannot make this mob a traitor! It has no mind!")
|
||||||
|
|
||||||
|
|
||||||
if (href_list["create_object"])
|
if (href_list["create_object"])
|
||||||
if (src.rank in list("Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
if (src.rank in list("Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master"))
|
||||||
return create_object(usr)
|
return create_object(usr)
|
||||||
@@ -2343,7 +2344,6 @@ var/global/BSACooldown = 0
|
|||||||
dat += "<tr><td>[H]</td><td>H.dna = null</td></tr>"
|
dat += "<tr><td>[H]</td><td>H.dna = null</td></tr>"
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
usr << browse(dat, "window=fingerprints;size=440x410")
|
usr << browse(dat, "window=fingerprints;size=440x410")
|
||||||
else
|
|
||||||
if (usr)
|
if (usr)
|
||||||
log_admin("[key_name(usr)] used secret [href_list["secretsadmin"]]")
|
log_admin("[key_name(usr)] used secret [href_list["secretsadmin"]]")
|
||||||
if (ok)
|
if (ok)
|
||||||
@@ -2376,6 +2376,16 @@ var/global/BSACooldown = 0
|
|||||||
J.spawn_positions = -1
|
J.spawn_positions = -1
|
||||||
message_admins("[key_name_admin(usr)] has removed the cap on security officers.")
|
message_admins("[key_name_admin(usr)] has removed the cap on security officers.")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if(href_list["vsc"])
|
||||||
|
if ((src.rank in list( "Moderator", "Temporary Admin", "Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master" )))
|
||||||
|
if(href_list["vsc"] == "airflow")
|
||||||
|
vsc.ChangeSettingsDialog(usr,vsc.settings)
|
||||||
|
if(href_list["vsc"] == "plasma")
|
||||||
|
vsc.ChangeSettingsDialog(usr,vsc.plc.settings)
|
||||||
|
if(href_list["vsc"] == "default")
|
||||||
|
vsc.SetDefault(usr)
|
||||||
|
|
||||||
if (href_list["rnd_max"])
|
if (href_list["rnd_max"])
|
||||||
for(var/obj/machinery/computer/rdconsole/C in world)
|
for(var/obj/machinery/computer/rdconsole/C in world)
|
||||||
for(var/datum/tech/T in C.files.known_tech)
|
for(var/datum/tech/T in C.files.known_tech)
|
||||||
@@ -2704,8 +2714,12 @@ var/global/BSACooldown = 0
|
|||||||
dat += "<A href='?src=\ref[src];create_turf=1'>Create Turf</A><br>"
|
dat += "<A href='?src=\ref[src];create_turf=1'>Create Turf</A><br>"
|
||||||
if(lvl >= 5)
|
if(lvl >= 5)
|
||||||
dat += "<A href='?src=\ref[src];create_mob=1'>Create Mob</A><br>"
|
dat += "<A href='?src=\ref[src];create_mob=1'>Create Mob</A><br>"
|
||||||
|
if(lvl >= 3 )
|
||||||
|
dat += "<br><A href='?src=\ref[src];vsc=airflow'>Edit Airflow Settings</A><br>"
|
||||||
|
dat += "<A href='?src=\ref[src];vsc=plasma'>Edit Plasma Settings</A><br>"
|
||||||
|
dat += "<A href='?src=\ref[src];vsc=default'>Choose a default ZAS setting</A><br>"
|
||||||
// if(lvl == 6 )
|
// if(lvl == 6 )
|
||||||
usr << browse(dat, "window=admin2;size=210x180")
|
usr << browse(dat, "window=admin2;size=210x280")
|
||||||
return
|
return
|
||||||
/*
|
/*
|
||||||
/obj/admins/proc/goons()
|
/obj/admins/proc/goons()
|
||||||
|
|||||||
Reference in New Issue
Block a user