diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm
index 47daf9254fa..ee7a1bfa9b9 100644
--- a/code/defines/mob/mob.dm
+++ b/code/defines/mob/mob.dm
@@ -99,7 +99,7 @@
var/canmove = 1.0
var/eye_stat = null//Living, potentially Carbon
-
+ var/name_archive //For admin things like possession
var/timeofdeath = 0.0//Living
var/cpr_time = 1.0//Carbon
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index b7e7e942f15..bad0d4a1043 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -10,69 +10,73 @@
if(!ticker || wavesecret)
return
+ wavesecret = 1
+ for(var/i = 0 to number)
+ spawn(rand(10,100))
+ spawn_meteor()
+ spawn(meteor_wave_delay)
+ wavesecret = 0
+
+/proc/spawn_meteors(var/number = meteors_in_small_wave)
+ for(var/i = 0; i < number; i++)
+ spawn(0)
+ spawn_meteor()
+
+/proc/spawn_meteor()
+
var/startx
var/starty
var/endx
var/endy
var/turf/pickedstart
var/turf/pickedgoal
- switch(pick(1,2,3,4))
- if(1) //NORTH
- starty = world.maxy-3
- startx = rand(1, world.maxx-1)
- endy = 1
- endx = rand(1, world.maxx-1)
- if(2) //EAST
- starty = rand(1,world.maxy-1)
- startx = world.maxx-3
- endy = rand(1, world.maxy-1)
- endx = 1
- if(3) //SOUTH
- starty = 3
- startx = rand(1, world.maxx-1)
- endy = world.maxy-1
- endx = rand(1, world.maxx-1)
- if(4) //WEST
- starty = rand(1, world.maxy-1)
- startx = 3
- endy = rand(1,world.maxy-1)
- endx = world.maxx-1
- pickedstart = locate(startx, starty, 1)
- pickedgoal = locate(endx, endy, 1)
- wavesecret = 1
- for(var/i = 0 to number)
- spawn(rand(10,100))
- spawn_meteor(pickedstart, pickedgoal)
- spawn(meteor_wave_delay)
- wavesecret = 0
+ var/max_i = 10//number of tries to spawn meteor.
-/proc/spawn_meteors(var/turf/pickedstart, var/turf/pickedgoal, var/number = meteors_in_small_wave)
- for(var/i = 0; i < number; i++)
- spawn(0)
- spawn_meteor(pickedstart, pickedgoal)
-/proc/spawn_meteor(var/turf/pickedstart, var/turf/pickedgoal)
+ do
+ switch(pick(1,2,3,4))
+ if(1) //NORTH
+ starty = world.maxy-3
+ startx = rand(1, world.maxx-1)
+ endy = 1
+ endx = rand(1, world.maxx-1)
+ if(2) //EAST
+ starty = rand(1,world.maxy-1)
+ startx = world.maxx-3
+ endy = rand(1, world.maxy-1)
+ endx = 1
+ if(3) //SOUTH
+ starty = 3
+ startx = rand(1, world.maxx-1)
+ endy = world.maxy-1
+ endx = rand(1, world.maxx-1)
+ if(4) //WEST
+ starty = rand(1, world.maxy-1)
+ startx = 3
+ endy = rand(1,world.maxy-1)
+ endx = world.maxx-1
+
+ pickedstart = locate(startx, starty, 1)
+ pickedgoal = locate(endx, endy, 1)
+ max_i--
+ if(max_i<=0) return
+
+ while (!istype(pickedstart, /turf/space) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen.
- var/route = rand(1,5)
- var/turf/tempgoal = pickedgoal
- for(var/i, i < route, i++)
- tempgoal = get_step(tempgoal,rand(1,8))
var/obj/effect/meteor/M
switch(rand(1, 100))
- if(1 to 15)
- M = new /obj/effect/meteor/big(pickedstart)
- if(16 to 75)
+
+ if(1 to 10)
+ M = new /obj/effect/meteor/big( pickedstart )
+ if(11 to 75)
M = new /obj/effect/meteor( pickedstart )
if(76 to 100)
M = new /obj/effect/meteor/small( pickedstart )
- M.dest = tempgoal
-
- do
- sleep(1)
+ M.dest = pickedgoal
+ spawn(0)
walk_towards(M, M.dest, 1)
- while (!istype(M.loc, /turf/space) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen.
return
@@ -133,12 +137,7 @@
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
shake_camera(M, 3, 1)
if (A)
- if(isobj(A))
- del(A)
- else
- A.meteorhit(src)
- src.hits--
- return
+ explosion(src.loc, 0, 1, 2, 3, 0)
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
if (--src.hits <= 0)
if(prob(15) && !istype(A, /obj/structure/grille))
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 6c0bc8b1481..f0388c880c1 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -26,11 +26,12 @@ Buildable meters
var/pipe_type = 0
//var/pipe_dir = 0
var/pipename
+ force = 7
icon = 'pipe-item.dmi'
icon_state = "simple"
item_state = "buildpipe"
flags = TABLEPASS|FPRINT
- w_class = 4
+ w_class = 3
level = 2
/obj/item/pipe/New(var/loc, var/pipe_type as num, var/dir as num, var/obj/machinery/atmospherics/make_from = null)
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index f3fc7c70ff5..e3d27b1256b 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -93,7 +93,7 @@ var/list/supply_groups = new()
icon_state = "request"
circuit = "/obj/item/weapon/circuitboard/ordercomp"
var/temp = null
-
+ var/reqtime = 0 //Cooldown for requisitions - Quarxink
/obj/machinery/computer/ordercomp/New()
// add the supply pack groups, if they haven't already been added
if(supply_groups.len == 0)
@@ -154,10 +154,12 @@ var/list/supply_groups = new()
//if((locate(/mob/living) in T) && (!locate(/mob/living/carbon/monkey) in T)) return 0 //old check for living excluded monkeys
if((locate(/mob/living) in T)) return 0
if((locate(/obj/item/device/radio/beacon) in T)) return 0
+ if((locate(/obj/mecha) in T)) return 0
for(var/atom/ATM in T)
if((locate(/mob/living/carbon) in ATM)) return 0 // allow simple_animals to be transported in containers
if((locate(/mob/living/silicon) in ATM)) return 0
if((locate(/obj/item/device/radio/beacon) in ATM)) return 0
+ if((locate(/obj/mecha ) in ATM)) return 0
return 1
@@ -302,44 +304,55 @@ var/list/supply_groups = new()
src.temp += "
OK"
else if (href_list["printform"])
- var/supplytype = href_list["printform"]
- var/datum/supply_packs/P = new supplytype ()
- var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(src.loc)
- var/idname = "Unknown"
- var/idrank = "Unknown"
- var/reason = input(usr,"Reason:","Why do you require this item?","")
+ if (!reqtime)
+ var/supplytype = href_list["printform"]
+ var/datum/supply_packs/P = new supplytype ()
+ var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(src.loc)
+ var/idname = "Unknown"
+ var/idrank = "Unknown"
+ var/reason = input(usr,"Reason:","Why do you require this item?","")
- reqform.name = "Requisition Form - [P.name]"
- reqform.overlays += "paper_words"
- reqform.info += "