mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-16 05:02:42 +00:00
TG update: latest meteor bugfixes. Replaced BS12 bugfixes.
This commit is contained in:
@@ -10,12 +10,30 @@
|
|||||||
if(!ticker || wavesecret)
|
if(!ticker || wavesecret)
|
||||||
return
|
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/startx
|
||||||
var/starty
|
var/starty
|
||||||
var/endx
|
var/endx
|
||||||
var/endy
|
var/endy
|
||||||
var/turf/pickedstart
|
var/turf/pickedstart
|
||||||
var/turf/pickedgoal
|
var/turf/pickedgoal
|
||||||
|
var/max_i = 10//number of tries to spawn meteor.
|
||||||
|
|
||||||
|
|
||||||
|
do
|
||||||
switch(pick(1,2,3,4))
|
switch(pick(1,2,3,4))
|
||||||
if(1) //NORTH
|
if(1) //NORTH
|
||||||
starty = world.maxy-3
|
starty = world.maxy-3
|
||||||
@@ -37,42 +55,28 @@
|
|||||||
startx = 3
|
startx = 3
|
||||||
endy = rand(1,world.maxy-1)
|
endy = rand(1,world.maxy-1)
|
||||||
endx = world.maxx-1
|
endx = world.maxx-1
|
||||||
|
|
||||||
pickedstart = locate(startx, starty, 1)
|
pickedstart = locate(startx, starty, 1)
|
||||||
pickedgoal = locate(endx, endy, 1)
|
pickedgoal = locate(endx, endy, 1)
|
||||||
wavesecret = 1
|
max_i--
|
||||||
for(var/i = 0 to number)
|
if(max_i<=0) return
|
||||||
spawn(rand(10,100))
|
|
||||||
spawn_meteor(pickedstart, pickedgoal)
|
|
||||||
spawn(meteor_wave_delay)
|
|
||||||
wavesecret = 0
|
|
||||||
|
|
||||||
/proc/spawn_meteors(var/turf/pickedstart, var/turf/pickedgoal, var/number = meteors_in_small_wave)
|
while (!istype(pickedstart, /turf/space) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen.
|
||||||
for(var/i = 0; i < number; i++)
|
|
||||||
spawn(0)
|
|
||||||
spawn_meteor(pickedstart, pickedgoal)
|
|
||||||
|
|
||||||
/proc/spawn_meteor(var/turf/pickedstart, var/turf/pickedgoal)
|
|
||||||
|
|
||||||
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
|
var/obj/effect/meteor/M
|
||||||
switch(rand(1, 100))
|
switch(rand(1, 100))
|
||||||
if(1 to 15)
|
|
||||||
M = new /obj/effect/meteor/big(pickedstart)
|
if(1 to 10)
|
||||||
if(16 to 75)
|
M = new /obj/effect/meteor/big( pickedstart )
|
||||||
|
if(11 to 75)
|
||||||
M = new /obj/effect/meteor( pickedstart )
|
M = new /obj/effect/meteor( pickedstart )
|
||||||
if(76 to 100)
|
if(76 to 100)
|
||||||
M = new /obj/effect/meteor/small( pickedstart )
|
M = new /obj/effect/meteor/small( pickedstart )
|
||||||
|
|
||||||
M.dest = tempgoal
|
M.dest = pickedgoal
|
||||||
|
spawn(0)
|
||||||
do
|
|
||||||
sleep(1)
|
|
||||||
walk_towards(M, M.dest, 1)
|
walk_towards(M, M.dest, 1)
|
||||||
while (!istype(M.loc, /turf/space) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen.
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -133,12 +137,7 @@
|
|||||||
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
|
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
|
||||||
shake_camera(M, 3, 1)
|
shake_camera(M, 3, 1)
|
||||||
if (A)
|
if (A)
|
||||||
if(isobj(A))
|
explosion(src.loc, 0, 1, 2, 3, 0)
|
||||||
del(A)
|
|
||||||
else
|
|
||||||
A.meteorhit(src)
|
|
||||||
src.hits--
|
|
||||||
return
|
|
||||||
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
|
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
|
||||||
if (--src.hits <= 0)
|
if (--src.hits <= 0)
|
||||||
if(prob(15) && !istype(A, /obj/structure/grille))
|
if(prob(15) && !istype(A, /obj/structure/grille))
|
||||||
|
|||||||
Reference in New Issue
Block a user