Skip to content

Commit

Permalink
moves all boss stuff to own datum, bug fixes, f/x fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
silencer-pl committed Sep 26, 2024
1 parent 3d72b15 commit 6d8de8d
Show file tree
Hide file tree
Showing 12 changed files with 53 additions and 29 deletions.
4 changes: 2 additions & 2 deletions code/__DEFINES/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -648,10 +648,10 @@
#define XENO_CASTE_HELLHOUND "Hellhound"
#define XENO_SPECIAL_CASTES list(XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND)

#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND)

#define XENO_CASTE_XENOSURGE_BOSS_BOT "Interceptor"

#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND,XENO_CASTE_XENOSURGE_BOSS_BOT)

// Checks if two hives are allied to each other.
// PARAMETERS:
// source_hive integer the hive to check the alliance of
Expand Down
15 changes: 7 additions & 8 deletions code/datums/ammo/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -398,14 +398,13 @@

/datum/ammo/xeno/surge_proj

name = "surge projectile"
icon_state = "shrapnel_light"
name = "laser beam"
icon = 'icons/Surge/boss_bot/boss_proj.dmi'
icon_state = "laser"
ping = null
flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER
damage_type = BRUTE

damage = 20
max_range = 10
damage_type = BURN
damage = 50
max_range = 20
accuracy = 100
shrapnel_type = /obj/item/shard/shrapnel/surge_chip
shrapnel_chance = 100
shell_speed = 0.5
2 changes: 2 additions & 0 deletions code/game/jobs/role_authority.dm
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,8 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
M = /mob/living/carbon/xenomorph/predalien
if(XENO_CASTE_HELLHOUND)
M = /mob/living/carbon/xenomorph/hellhound
if(XENO_CASTE_XENOSURGE_BOSS_BOT)
M = /mob/living/carbon/xenomorph/boss_bot
return M


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,16 @@
for(var/mob/living/carbon/human/target in view("15x15",xeno))
if(mobs_in_view.Find(target) == 0)
mobs_in_view.Add(target)
if(mobs_in_view.len == 0) return
playsound(xeno, 'sound/items/pulse3.ogg', 50)
for(var/mob/living/carbon/human/target_to_shoot in mobs_in_range)
if(mobs_in_view.Find(target_to_shoot) != 0)
var/turf/target = get_turf(target_to_shoot)
var/obj/projectile/projectile = new /obj/projectile(xeno.loc, create_cause_data(initial(xeno.caste_type), xeno))
var/datum/ammo/ammo_datum = GLOB.ammo_list[ammo_type]
projectile.generate_bullet(ammo_datum)
projectile.fire_at(target, xeno, xeno, ammo_datum.max_range, ammo_datum.shell_speed)

apply_cooldown()
return ..()

Expand All @@ -55,7 +58,7 @@

/turf/proc/warning_ping()
var/obj/item/prop/big_warning_ping/ping = new(src)
sleep(60)
sleep(100)
qdel(ping)

/obj/item/prop/missile_storm_up
Expand All @@ -65,12 +68,12 @@
anchored = TRUE
indestructible = TRUE
layer = ABOVE_MOB_LAYER
icon = 'icons/effects/missile_storm.dmi'
icon_state = "up"

icon = 'icons/Surge/boss_bot/boss_proj.dmi'
icon_state = "missile"

/obj/item/prop/missile_storm_up/proc/animate_takeoff()
animate(src,pixel_y=384,time = 10,easing=QUAD_EASING|EASE_IN)
var/launch_x = pixel_x + rand(-2,2)
animate(src,pixel_x=launch_x,pixel_y=384,time = 10,easing=QUAD_EASING|EASE_IN)
sleep(11)
qdel(src)

Expand All @@ -86,12 +89,15 @@
anchored = TRUE
indestructible = TRUE
layer = ABOVE_MOB_LAYER
icon = 'icons/effects/missile_storm.dmi'
icon_state = "down"
icon = 'icons/Surge/boss_bot/boss_proj.dmi'
icon_state = "missile"


/obj/item/prop/missile_storm_down/proc/animate_landing()
animate(src,pixel_y=0,time = 10,easing=QUAD_EASING|EASE_IN)
var/matrix/A = matrix()
A.Turn(180)
apply_transform(A)
animate(src,pixel_x=0,pixel_y=0,time = 10,easing=QUAD_EASING|EASE_IN)
sleep(11)
qdel(src)

Expand All @@ -104,25 +110,32 @@
/datum/action/xeno_action/activable/rapid_missles/proc/fire_animation()
var/mob/living/carbon/xenomorph/xeno = owner
var/spawned_props = 1
var/sound_cycle = 0
playsound(xeno,'sound/surge/rockets_launching.ogg', 80)
while(spawned_props <= xeno.missile_storm_missiles)
var/turf/owner_turf = get_turf(owner)
if(sound_cycle == 8) sound_cycle = 0
if(sound_cycle == 0) playsound(owner_turf,'sound/surge/rockets_launching.ogg', 80)
new /obj/item/prop/missile_storm_up(owner_turf)
spawned_props += 1
sleep(2)
sound_cycle += 2
xeno.armor_deflection = 100
xeno.anchored = FALSE

/obj/item/prop/explosion_fx
name = "kaboom"
opacity = FALSE
mouse_opacity = FALSE
anchored = TRUE
indestructible = TRUE
layer = ABOVE_MOB_LAYER
icon = 'icons/Surge/effects/boss_boom.dmi'
icon_state = "explosion"

/datum/action/xeno_action/activable/rapid_missles/proc/hit_animation(turf/turf_to_hit_animate)
var/mob/living/carbon/xenomorph/xeno = owner
new /obj/item/prop/missile_storm_down(turf_to_hit_animate)
sleep(13)
var/obj/item/prop/explosion_fx/boom = new(turf_to_hit_animate)
var/datum/cause_data/cause_data = create_cause_data("surge bombardment")
cell_explosion(turf_to_hit_animate, xeno.explosion_damage, (xeno.explosion_damage / 2), EXPLOSION_FALLOFF_SHAPE_LINEAR, null, cause_data)

sleep(10)
qdel(boom)

/datum/action/xeno_action/activable/rapid_missles/proc/fire_loop(turf/target_turf)
var/list/turfs_to_hit = list()
Expand Down
16 changes: 12 additions & 4 deletions code/modules/mob/living/carbon/xenomorph/castes/boss_bot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,39 @@
minimap_icon = "runner"


/datum/action/xeno_action/onclick/toggle_long_range/boss_bot
handles_movement = TRUE
should_delay = FALSE


/mob/living/carbon/xenomorph/boss_bot
caste_type = XENO_CASTE_XENOSURGE_BOSS_BOT
name = "BALTHEUS-6 Pursuit Wrepons Platform"
desc = "A heavilly modified automated weapons platform of unknown make."
icon = 'icons/Surge/boss_bot/boss.dmi'
icon_state = "Boss Walking"
icon_size = 64
attack_sound = null
layer = MOB_LAYER
plasma_types = list(PLASMA_CATECHOLAMINE)
tier = 1
tier = 0
pixel_x = -8
old_x = -8
base_pixel_x = 0
base_pixel_y = 0
pull_speed = -0.5
viewsize = 12
viewsize = 14
wall_smash = 1
universal_understand = 1
universal_speak = 1
langchat_color = "#ff1313"
boss_type = 1
small_explosives_stun = FALSE


mob_size = MOB_SIZE_XENO_SMALL
mob_size = MOB_SIZE_IMMOBILE

base_actions = list(
/datum/action/xeno_action/onclick/toggle_long_range/boss_bot,
/datum/action/xeno_action/activable/surge_proj,
/datum/action/xeno_action/activable/rapid_missles/,
)
Expand Down
2 changes: 2 additions & 0 deletions code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,8 @@
var/area/A = get_area(X)
if(!(A.flags_atom & AREA_ALLOW_XENO_JOIN))
continue
if(X.boss_type == 1) //As above, but skips this for bosses.
continue

if(X.caste && X.counts_for_slots)
xeno_counts[X.caste.tier+1][X.caste.caste_type]++
Expand Down
Binary file modified icons/Surge/boss_bot/boss.dmi
Binary file not shown.
Binary file modified icons/Surge/effects/boss_boom.dmi
Binary file not shown.
Binary file removed icons/effects/missile_storm.dmi
Binary file not shown.
Binary file added sound/items/pulse.ogg
Binary file not shown.
Binary file added sound/items/pulse2.ogg
Binary file not shown.
Binary file added sound/items/pulse3.ogg
Binary file not shown.

0 comments on commit 6d8de8d

Please sign in to comment.