-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:
sieve32@gmail.com
2012-06-21 22:54:18 +00:00
parent ac03d8d451
commit 2d7c62e605
5 changed files with 48 additions and 31 deletions

View File

@@ -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/triai = 0//Global holder for Triumvirate
/datum/controller/gameticker/proc/pregame()
login_music = pick('title2.ogg') // choose title music!
@@ -82,7 +84,6 @@ var/global/datum/controller/gameticker/ticker
return 0
//Configure mode and assign player to special mode stuff
job_master.DivideOccupations() //Distribute jobs
var/can_continue = src.mode.pre_setup()//Setup special modes
if(!can_continue)

View File

@@ -111,6 +111,7 @@ var/global/datum/controller/occupations/job_master
if(!job) 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)
var/list/candidates = list()
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()
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
for(var/mob/new_player/player in world)

View File

@@ -94,6 +94,17 @@
for(var/obj/item/weapon/ore/ore in range(chassis,1))
if(get_dir(chassis,ore)&chassis.dir)
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)
log_message("Drilled through [target]")
target.ex_act(2)
@@ -146,7 +157,7 @@
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))
for(var/obj/item/weapon/ore/ore in range(target,1))
ore.Move(ore_box)
else if(target.loc == C)
log_message("Drilled through [target]")

View File

@@ -907,7 +907,7 @@
/turf/simulated/wall/mineral/attackby(obj/item/weapon/W as obj, mob/user as mob)
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))
return
if(mineral == "uranium")
@@ -940,7 +940,7 @@
for(var/obj/machinery/door/airlock/plasma/D in range(3,src))
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(exposed_temperature > 300)
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",
"asteroid","asteroid_dug",
"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")
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()
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(is_plasteel_floor())
src.icon_state = "damaged[pick(1,2,3,4,5)]"

View File

@@ -5,18 +5,17 @@
if(ticker.current_state > GAME_STATE_PREGAME)
usr << "This option is currently only usable during pregame. This may change at a later date."
return
if(job_master)
if(job_master && ticker)
var/datum/job/job = job_master.GetJob("AI")
if(!job)
usr << "Unable to locate the AI job"
return
if(job.spawn_positions >= 3)
job.spawn_positions -= 2
if(ticker.triai)
ticker.triai = 0
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)
else
job.spawn_positions += 2
ticker.triai = 1
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)
feedback_add_details("admin_verb","CAIT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!