Merge pull request #2196 from Citadel-Station-13/upstream-merge-29412

[MIRROR] Colossus's shotgun is now a static-spread blast of 6 bolts
This commit is contained in:
ktccd
2017-07-31 21:59:10 +02:00
committed by GitHub
2 changed files with 25 additions and 56 deletions
@@ -78,7 +78,7 @@ Difficulty: Very Hard
double_spiral()
else
visible_message("<span class='colossus'>\"<b>Judgement.</b>\"</span>")
INVOKE_ASYNC(src, .proc/spiral_shoot, rand(0, 1))
INVOKE_ASYNC(src, .proc/spiral_shoot, pick(TRUE, FALSE))
else if(prob(20))
ranged_cooldown = world.time + 30
@@ -142,46 +142,11 @@ Difficulty: Very Hard
sleep(10)
INVOKE_ASYNC(src, .proc/spiral_shoot)
INVOKE_ASYNC(src, .proc/spiral_shoot, 1)
INVOKE_ASYNC(src, .proc/spiral_shoot, TRUE)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = 0, counter_start = 1)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/spiral_shoot(negative = FALSE, counter_start = 8)
var/counter = counter_start
var/turf/marker
for(var/i in 1 to 80)
switch(counter)
if(1)
marker = locate(x, y - 2, z)
if(2)
marker = locate(x - 1, y - 2, z)
if(3)
marker = locate(x - 2, y - 2, z)
if(4)
marker = locate(x - 2, y - 1, z)
if(5)
marker = locate(x - 2, y, z)
if(6)
marker = locate(x - 2, y + 1, z)
if(7)
marker = locate(x - 2, y + 2, z)
if(8)
marker = locate(x - 1, y + 2, z)
if(9)
marker = locate(x, y + 2, z)
if(10)
marker = locate(x + 1, y + 2, z)
if(11)
marker = locate(x + 2, y + 2, z)
if(12)
marker = locate(x + 2, y + 1, z)
if(13)
marker = locate(x + 2, y, z)
if(14)
marker = locate(x + 2, y - 1, z)
if(15)
marker = locate(x + 2, y - 2, z)
if(16)
marker = locate(x + 1, y - 2, z)
if(negative)
counter--
else
@@ -190,25 +155,25 @@ Difficulty: Very Hard
counter = 1
if(counter < 1)
counter = 16
shoot_projectile(marker)
shoot_projectile(null, counter * 22.5)
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, 1)
sleep(1)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/shoot_projectile(turf/marker)
if(!marker || marker == loc)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/shoot_projectile(turf/marker, set_angle)
if(!isnum(set_angle) && (!marker || marker == loc))
return
var/turf/startloc = get_turf(src)
var/obj/item/projectile/P = new /obj/item/projectile/colossus(startloc)
P.current = startloc
P.starting = startloc
P.firer = src
P.yo = marker.y - startloc.y
P.xo = marker.x - startloc.x
if(marker)
P.yo = marker.y - startloc.y
P.xo = marker.x - startloc.x
P.original = marker
if(target)
P.original = target
else
P.original = marker
P.fire()
P.fire(set_angle)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/random_shots()
var/turf/U = get_turf(src)
@@ -217,17 +182,21 @@ Difficulty: Very Hard
if(prob(5))
shoot_projectile(T)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/blast()
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2)
var/turf/T = get_turf(target)
newtonian_move(get_dir(T, targets_from))
for(var/turf/turf in range(1, T))
shoot_projectile(turf)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/blast(set_angle)
var/turf/target_turf = get_turf(target)
playsound(src, 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2)
newtonian_move(get_dir(target_turf, src))
var/angle_to_target = Get_Angle(src, target_turf)
if(isnum(set_angle))
angle_to_target = set_angle
var/static/list/colossus_shotgun_shot_angles = list(12.5, 7.5, 2.5, -2.5, -7.5, -12.5)
for(var/i in colossus_shotgun_shot_angles)
shoot_projectile(null, angle_to_target + i)
/mob/living/simple_animal/hostile/megafauna/colossus/proc/dir_shots(list/dirs)
if(!islist(dirs))
dirs = GLOB.alldirs.Copy()
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2)
playsound(src, 'sound/magic/clockwork/invoke_general.ogg', 200, 1, 2)
for(var/d in dirs)
var/turf/E = get_step(src, d)
shoot_projectile(E)
@@ -235,9 +204,9 @@ Difficulty: Very Hard
/mob/living/simple_animal/hostile/megafauna/colossus/proc/telegraph()
for(var/mob/M in range(10,src))
if(M.client)
flash_color(M.client, rgb(200, 0, 0), 1)
flash_color(M.client, "#C80000", 1)
shake_camera(M, 4, 3)
playsound(get_turf(src),'sound/magic/clockwork/narsie_attack.ogg', 200, 1)
playsound(src, 'sound/magic/clockwork/narsie_attack.ogg', 200, 1)
+1 -1
View File
@@ -203,7 +203,7 @@
direct_target.bullet_act(src, def_zone)
qdel(src)
return
if(setAngle)
if(isnum(setAngle))
Angle = setAngle
var/old_pixel_x = pixel_x
var/old_pixel_y = pixel_y