mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
-Change to mech drills, the regular ones mine sand just as they mine the asteroid walls (Meaning they mine a 1x3 area and stick it in an orebox)
-Asteroid floors cannot be burned into metal tiles anymore -Added some better comments in the turf.dm as well -Fixed Issue 329, so Triumvirate works again git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3886 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -34,6 +34,8 @@ var/global/datum/controller/gameticker/ticker
|
|||||||
|
|
||||||
var/delay_end = 0 //if set to nonzero, the round will not restart on it's own
|
var/delay_end = 0 //if set to nonzero, the round will not restart on it's own
|
||||||
|
|
||||||
|
var/triai = 0//Global holder for Triumvirate
|
||||||
|
|
||||||
/datum/controller/gameticker/proc/pregame()
|
/datum/controller/gameticker/proc/pregame()
|
||||||
login_music = pick('title2.ogg') // choose title music!
|
login_music = pick('title2.ogg') // choose title music!
|
||||||
|
|
||||||
@@ -82,7 +84,6 @@ var/global/datum/controller/gameticker/ticker
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
//Configure mode and assign player to special mode stuff
|
//Configure mode and assign player to special mode stuff
|
||||||
|
|
||||||
job_master.DivideOccupations() //Distribute jobs
|
job_master.DivideOccupations() //Distribute jobs
|
||||||
var/can_continue = src.mode.pre_setup()//Setup special modes
|
var/can_continue = src.mode.pre_setup()//Setup special modes
|
||||||
if(!can_continue)
|
if(!can_continue)
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ var/global/datum/controller/occupations/job_master
|
|||||||
if(!job) return 0
|
if(!job) return 0
|
||||||
if((job.title == "AI") && (config) && (!config.allow_ai)) return 0
|
if((job.title == "AI") && (config) && (!config.allow_ai)) return 0
|
||||||
|
|
||||||
|
for(var/i = job.total_positions, i > 0, i--)
|
||||||
for(var/level = 1 to 3)
|
for(var/level = 1 to 3)
|
||||||
var/list/candidates = list()
|
var/list/candidates = list()
|
||||||
if(ticker.mode.name == "AI malfunction")//Make sure they want to malf if its malf
|
if(ticker.mode.name == "AI malfunction")//Make sure they want to malf if its malf
|
||||||
@@ -144,6 +145,10 @@ var/global/datum/controller/occupations/job_master
|
|||||||
SetupOccupations()
|
SetupOccupations()
|
||||||
|
|
||||||
occupations = shuffle(occupations) //Shuffles job-list at round start so that people don't have their job picks randomized
|
occupations = shuffle(occupations) //Shuffles job-list at round start so that people don't have their job picks randomized
|
||||||
|
if(ticker)//Holder for Triumvirate is stored in the ticker, this just processes it
|
||||||
|
for(var/datum/job/ai/A in occupations)
|
||||||
|
if(ticker.triai)
|
||||||
|
A.spawn_positions = 3
|
||||||
|
|
||||||
//Get the players who are ready
|
//Get the players who are ready
|
||||||
for(var/mob/new_player/player in world)
|
for(var/mob/new_player/player in world)
|
||||||
|
|||||||
@@ -94,6 +94,17 @@
|
|||||||
for(var/obj/item/weapon/ore/ore in range(chassis,1))
|
for(var/obj/item/weapon/ore/ore in range(chassis,1))
|
||||||
if(get_dir(chassis,ore)&chassis.dir)
|
if(get_dir(chassis,ore)&chassis.dir)
|
||||||
ore.Move(ore_box)
|
ore.Move(ore_box)
|
||||||
|
else if(istype(target, /turf/simulated/floor/plating/airless/asteroid))
|
||||||
|
for(var/turf/simulated/floor/plating/airless/asteroid/M in range(chassis,1))
|
||||||
|
if(get_dir(chassis,M)&chassis.dir)
|
||||||
|
M.gets_dug()
|
||||||
|
log_message("Drilled through [target]")
|
||||||
|
if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment)
|
||||||
|
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo
|
||||||
|
if(ore_box)
|
||||||
|
for(var/obj/item/weapon/ore/ore in range(chassis,1))
|
||||||
|
if(get_dir(chassis,ore)&chassis.dir)
|
||||||
|
ore.Move(ore_box)
|
||||||
else if(target.loc == C)
|
else if(target.loc == C)
|
||||||
log_message("Drilled through [target]")
|
log_message("Drilled through [target]")
|
||||||
target.ex_act(2)
|
target.ex_act(2)
|
||||||
@@ -146,7 +157,7 @@
|
|||||||
if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment)
|
if(locate(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp) in chassis.equipment)
|
||||||
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo
|
var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in chassis:cargo
|
||||||
if(ore_box)
|
if(ore_box)
|
||||||
for(var/obj/item/weapon/ore/ore in range(chassis,1))
|
for(var/obj/item/weapon/ore/ore in range(target,1))
|
||||||
ore.Move(ore_box)
|
ore.Move(ore_box)
|
||||||
else if(target.loc == C)
|
else if(target.loc == C)
|
||||||
log_message("Drilled through [target]")
|
log_message("Drilled through [target]")
|
||||||
|
|||||||
@@ -907,7 +907,7 @@
|
|||||||
|
|
||||||
/turf/simulated/wall/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/turf/simulated/wall/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if((mineral == "plasma") && W)
|
if((mineral == "plasma") && W)
|
||||||
if(is_hot(W) > 300)
|
if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite
|
||||||
ignite(is_hot(W))
|
ignite(is_hot(W))
|
||||||
return
|
return
|
||||||
if(mineral == "uranium")
|
if(mineral == "uranium")
|
||||||
@@ -940,7 +940,7 @@
|
|||||||
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
|
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
|
||||||
D.ignite(temperature/4)
|
D.ignite(temperature/4)
|
||||||
|
|
||||||
/turf/simulated/wall/mineral/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
/turf/simulated/wall/mineral/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)//Doesn't fucking work because walls don't interact with air :(
|
||||||
if(mineral == "plasma")
|
if(mineral == "plasma")
|
||||||
if(exposed_temperature > 300)
|
if(exposed_temperature > 300)
|
||||||
PlasmaBurn(exposed_temperature)
|
PlasmaBurn(exposed_temperature)
|
||||||
@@ -1003,7 +1003,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
|
|||||||
"light_on_broken","light_off","wall_thermite","grass1","grass2","grass3","grass4",
|
"light_on_broken","light_off","wall_thermite","grass1","grass2","grass3","grass4",
|
||||||
"asteroid","asteroid_dug",
|
"asteroid","asteroid_dug",
|
||||||
"asteroid0","asteroid1","asteroid2","asteroid3","asteroid4",
|
"asteroid0","asteroid1","asteroid2","asteroid3","asteroid4",
|
||||||
"asteroid5","asteroid6","asteroid7","asteroid8",
|
"asteroid5","asteroid6","asteroid7","asteroid8","asteroid9","asteroid10","asteroid11","asteroid12",
|
||||||
"burning","oldburning","light-on-r","light-on-y","light-on-g","light-on-b")
|
"burning","oldburning","light-on-r","light-on-y","light-on-g","light-on-b")
|
||||||
|
|
||||||
var/list/plating_icons = list("plating","platingdmg1","platingdmg2","platingdmg3","asteroid","asteroid_dug")
|
var/list/plating_icons = list("plating","platingdmg1","platingdmg2","platingdmg3","asteroid","asteroid_dug")
|
||||||
@@ -1321,6 +1321,7 @@ turf/simulated/floor/return_siding_icon_state()
|
|||||||
|
|
||||||
/turf/simulated/floor/proc/burn_tile()
|
/turf/simulated/floor/proc/burn_tile()
|
||||||
if(istype(src,/turf/simulated/floor/engine)) return
|
if(istype(src,/turf/simulated/floor/engine)) return
|
||||||
|
if(istype(src,/turf/simulated/floor/plating/airless/asteroid)) return//Asteroid tiles don't burn
|
||||||
if(broken || burnt) return
|
if(broken || burnt) return
|
||||||
if(is_plasteel_floor())
|
if(is_plasteel_floor())
|
||||||
src.icon_state = "damaged[pick(1,2,3,4,5)]"
|
src.icon_state = "damaged[pick(1,2,3,4,5)]"
|
||||||
|
|||||||
@@ -5,18 +5,17 @@
|
|||||||
if(ticker.current_state > GAME_STATE_PREGAME)
|
if(ticker.current_state > GAME_STATE_PREGAME)
|
||||||
usr << "This option is currently only usable during pregame. This may change at a later date."
|
usr << "This option is currently only usable during pregame. This may change at a later date."
|
||||||
return
|
return
|
||||||
if(job_master)
|
if(job_master && ticker)
|
||||||
var/datum/job/job = job_master.GetJob("AI")
|
var/datum/job/job = job_master.GetJob("AI")
|
||||||
if(!job)
|
if(!job)
|
||||||
usr << "Unable to locate the AI job"
|
usr << "Unable to locate the AI job"
|
||||||
return
|
return
|
||||||
|
if(ticker.triai)
|
||||||
if(job.spawn_positions >= 3)
|
ticker.triai = 0
|
||||||
job.spawn_positions -= 2
|
|
||||||
usr << "Only one AI will be spawned at round start."
|
usr << "Only one AI will be spawned at round start."
|
||||||
message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
|
message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
|
||||||
else
|
else
|
||||||
job.spawn_positions += 2
|
ticker.triai = 1
|
||||||
usr << "There will be an AI Triumvirate at round start."
|
usr << "There will be an AI Triumvirate at round start."
|
||||||
message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
|
message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
|
||||||
feedback_add_details("admin_verb","CAIT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
feedback_add_details("admin_verb","CAIT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
|
|||||||
Reference in New Issue
Block a user