diff --git a/code/ZAS/Airflow.dm b/code/ZAS/Airflow.dm index 36cc1f7cea3..09ad7eb1596 100644 --- a/code/ZAS/Airflow.dm +++ b/code/ZAS/Airflow.dm @@ -49,20 +49,39 @@ atom/movable/RepelAirflowDest(n) */ vs_control/var - 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_medium_pressure = 60 - airflow_heavy_pressure = 75 - airflow_heaviest_pressure = 90 - - airflow_damage = 0.3 + airflow_light_pressure_NAME = "Airflow - Medium Movement Threshold %" + airflow_light_pressure_DESC = "Percent of 1 Atm. at which items with the medium weight classes will move." + airflow_medium_pressure = 90 + airflow_medium_pressure_NAME = "Airflow - Heavy Movement Threshold %" + 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_speed_decay = 1 - airflow_delay = 30 //Time in deciseconds before they can be moved by airflow again. - airflow_mob_slowdown = 1 //Time in tenths of a second to add as a delay to each movement by a mob.\ - Only active if they are fighting the pull of the airflow. - airflow_stun_cooldown = 10 //How long, in tenths of a second, to wait before stunning them again. + airflow_stun_NAME = "Airflow Impact - Stunning" + airflow_stun_DESC = "How much a mob is stunned when hit by an object." + airflow_damage = 0.3 + airflow_damage_NAME = "Airflow Impact - Damage" + 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/proc/airflow_stun() @@ -254,7 +273,7 @@ atom/movable if(src:shoes) if(src:shoes.type == /obj/item/clothing/shoes/magboots && src:shoes.flags & NOSLIP) return 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 xo = airflow_dest.x - src.x yo = airflow_dest.y - src.y @@ -304,7 +323,7 @@ atom/movable if(src:shoes) if(src:shoes.type == /obj/item/clothing/shoes/magboots && src:shoes.flags & NOSLIP) return 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 xo = -(airflow_dest.x - src.x) yo = -(airflow_dest.y - src.y) @@ -348,14 +367,14 @@ atom/movable/proc/airflow_hit(atom/A) mob/airflow_hit(atom/A) for(var/mob/M in hearers(src)) - M.show_message("\red [src] slams into [A]!",1,"\red You hear a loud slam!",2) + M.show_message("\red \The [src] slams into \a [A]!",1,"\red You hear a loud slam!",2) playsound(src.loc, "smash.ogg", 25, 1, -1) weakened = max(weakened, (istype(A,/obj/item) ? A:w_class : rand(1,5))) //Heheheh . = ..() obj/airflow_hit(atom/A) for(var/mob/M in hearers(src)) - M.show_message("\red [src] slams into [A]!",1,"\red You hear a loud slam!",2) + M.show_message("\red \The [src] slams into \a [A]!",1,"\red You hear a loud slam!",2) 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) . = ..() -var/list/airflow_forbidden = list(/obj/structure/ore_box, /mob/aiEye) - zone/proc/movables() . = list() for(var/turf/T in contents) for(var/atom/A in T) - if(!(locate(A) in airflow_forbidden)) - . += A \ No newline at end of file + if(istype(A, /mob/aiEye)) continue + . += A \ No newline at end of file diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index 5b2f48cdd31..8223b25f476 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -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/IgnitionLeve_DESC = "Moles of oxygen+plasma - co2 needed to burn." //Some legacy definitions so fires can be started. atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) diff --git a/code/ZAS/Variable Settings.dm b/code/ZAS/Variable Settings.dm index 70f186613b2..c83008d72d3 100644 --- a/code/ZAS/Variable Settings.dm +++ b/code/ZAS/Variable Settings.dm @@ -39,7 +39,7 @@ vs_control else vw = vars[ch] 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 += "[vw_name] = [vw] \[Change\]
" dat += "[vw_desc]

" user << browse(dat,"window=settings") @@ -114,7 +114,11 @@ vs_control plc.Randomize(V) ////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) if("Original") plc.CLOTH_CONTAMINATION = 0 //If this is on, plasma does damage by getting into cloth. diff --git a/code/defines/obj/vending.dm b/code/defines/obj/vending.dm index b44465e4325..f7ba00d2bd0 100755 --- a/code/defines/obj/vending.dm +++ b/code/defines/obj/vending.dm @@ -372,6 +372,7 @@ desc = "All the fine parts you need in one vending machine!" product_hidden = "" 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_amounts = "6;6;6;6;6" product_prices = "1;2;2;2;2;2;2;2" @@ -431,6 +432,7 @@ name = "Toxins Charge" charge_type = "toxins" icon_state = "toxins-charge" + charge_amt = 40 /obj/item/weapon/vending_charge/robotics name = "Robotics Charge" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 871c134542c..d9a3f534fd2 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1577,6 +1577,7 @@ var/global/BSACooldown = 0 return alert("Cannot make this mob a traitor! It has no mind!") + if (href_list["create_object"]) if (src.rank in list("Admin Candidate", "Trial Admin", "Badmin", "Game Admin", "Game Master")) return create_object(usr) @@ -2343,7 +2344,6 @@ var/global/BSACooldown = 0 dat += "[H]H.dna = null" dat += "" usr << browse(dat, "window=fingerprints;size=440x410") - else if (usr) log_admin("[key_name(usr)] used secret [href_list["secretsadmin"]]") if (ok) @@ -2376,6 +2376,16 @@ var/global/BSACooldown = 0 J.spawn_positions = -1 message_admins("[key_name_admin(usr)] has removed the cap on security officers.") 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"]) for(var/obj/machinery/computer/rdconsole/C in world) for(var/datum/tech/T in C.files.known_tech) @@ -2704,8 +2714,12 @@ var/global/BSACooldown = 0 dat += "Create Turf
" if(lvl >= 5) dat += "Create Mob
" + if(lvl >= 3 ) + dat += "
Edit Airflow Settings
" + dat += "Edit Plasma Settings
" + dat += "Choose a default ZAS setting
" // if(lvl == 6 ) - usr << browse(dat, "window=admin2;size=210x180") + usr << browse(dat, "window=admin2;size=210x280") return /* /obj/admins/proc/goons()