[Ready] Adds Support For Player Controlled Megafauna + Megafauna Code Refactors (#44005)

* adds small sprites for many of the large megafauna

moves fireball target code back to drake file

changes the speed of every megafauna mob to its move to delay so player controlled ones have the same speed

adds action abilities to each megafauna so players can select the type of attack they want

refactors pretty much all of the megafauna code to be simpler to edit and easier to read as well as have some consistency in where stuff like initialize goes

lesser ash drake now inherits alt click on instead of normal ash drake having it

hierophant no longer blinks on alt click as well

removes pointless check in legion code for ranged timer delay as the proc that calls openfire already checks that

adds icon for new bubblegum blood tracks

bubblegum blood no longer leaves footstep trails as it caused massive lag when many blood tiles were run over in a fight as well as being way too excessive

* fixes a megafauna bug where they could not attack while in space

megafauna can now move through space normally as they would anywhere else

bubblegum no longer runs from corpses and people dying

* fix the weird line errors

* lots of sins have been cleansed (0 = false 1 = true)

switch cases for player attack selection

bubblegum has been bug fixed a bit (steps can be blood warped to, adds blood warp ability)

bubblegum now has some slight additions to its attacks to keep the fight faster paced

bubblegums enrage mode now lasts longer and makes him move faster

legion now has their speed changed properly when they charge (wow this is an old fucking bug like old old)

bubblegum now tries to be aggressive towards people that are laying down (no more resting under bubblegum charges without consequences)

bubblegum now spawns slaughterlings when he devours targets

* fine tunes new bubblegum attacks and replaces some is_procs with defines

* fixes stupid snowflake stuff in bdm code

specifies in defines for bubblegum

lots of sleep_check_death now to avoid stupid stuff

removes need for hierophant_dying var as well as combines all the blast procs into one since they were so similar
This commit is contained in:
Whoneedspacee
2019-06-09 17:24:38 -04:00
committed by moo
parent 907375f5c6
commit 7c674ea486
11 changed files with 1085 additions and 761 deletions
-49
View File
@@ -1175,55 +1175,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
msg += "</UL></BODY></HTML>"
src << browse(msg.Join(), "window=Player_playtime_check")
/obj/effect/temp_visual/fireball
icon = 'icons/obj/wizard.dmi'
icon_state = "fireball"
name = "fireball"
desc = "Get out of the way!"
layer = FLY_LAYER
randomdir = FALSE
duration = 9
pixel_z = 270
/obj/effect/temp_visual/fireball/Initialize()
. = ..()
animate(src, pixel_z = 0, time = duration)
/obj/effect/temp_visual/target
icon = 'icons/mob/actions/actions_items.dmi'
icon_state = "sniper_zoom"
layer = BELOW_MOB_LAYER
light_range = 2
duration = 9
/obj/effect/temp_visual/target/ex_act()
return
/obj/effect/temp_visual/target/Initialize(mapload, list/flame_hit)
. = ..()
INVOKE_ASYNC(src, .proc/fall, flame_hit)
/obj/effect/temp_visual/target/proc/fall(list/flame_hit)
var/turf/T = get_turf(src)
playsound(T,'sound/magic/fleshtostone.ogg', 80, 1)
new /obj/effect/temp_visual/fireball(T)
sleep(duration)
if(ismineralturf(T))
var/turf/closed/mineral/M = T
M.gets_drilled()
playsound(T, "explosion", 80, 1)
new /obj/effect/hotspot(T)
T.hotspot_expose(700, 50, 1)
for(var/mob/living/L in T.contents)
if(istype(L, /mob/living/simple_animal/hostile/megafauna/dragon))
continue
if(islist(flame_hit) && !flame_hit[L])
L.adjustFireLoss(40)
to_chat(L, "<span class='userdanger'>You're hit by the drake's fire breath!</span>")
flame_hit[L] = TRUE
else
L.adjustFireLoss(10) //if we've already hit them, do way less damage
/datum/admins/proc/cmd_show_exp_panel(client/C)
if(!check_rights(R_ADMIN))
return