From 22dee26adf4a62c1cd12b120fa92f89aaf769b84 Mon Sep 17 00:00:00 2001 From: silencer-pl <103842328+silencer-pl@users.noreply.github.com> Date: Sun, 29 Sep 2024 16:39:08 -0400 Subject: [PATCH] Datum handling --- .../pve/boss/abilities/boss_click_actions.dm | 5 +++-- code/modules/pve/boss/boss.dm | 20 +++++++------------ 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/code/modules/pve/boss/abilities/boss_click_actions.dm b/code/modules/pve/boss/abilities/boss_click_actions.dm index a392182be5..31c0c63e36 100644 --- a/code/modules/pve/boss/abilities/boss_click_actions.dm +++ b/code/modules/pve/boss/abilities/boss_click_actions.dm @@ -2,8 +2,9 @@ var/mob/living/pve_boss/attached_mob -/datum/bossclicking/proc/AssignMob(mob/owner_mob) - attached_mob = owner_mob +/datum/bossclicking/New() + . = ..() + attached_mob = src /datum/bossclicking/proc/InterceptClickOn(mob/user, params, atom/object) diff --git a/code/modules/pve/boss/boss.dm b/code/modules/pve/boss/boss.dm index e1e640a6ae..f441258916 100644 --- a/code/modules/pve/boss/boss.dm +++ b/code/modules/pve/boss/boss.dm @@ -9,8 +9,8 @@ var/boss_type = "default" //below should be safely disregarded if type is not set to 1 var/boss_stage = 1 - var/datum/boss_action/boss_ability = /datum/boss_action/ - var/datum/bossclicking/boss_click_intercept = /datum/bossclicking/ + var/datum/boss_action/boss_ability + var/list/boss_abilities = list() var/list/ability_cooldowns = list() var/explosion_damage = 30 @@ -23,23 +23,17 @@ /mob/living/pve_boss/Initialize() . = ..() - boss_ability.set_owner(src) - boss_click_intercept.AssignMob(src) - click_intercept = boss_click_intercept + boss_ability = new /datum/boss_action/ + click_intercept = new /datum/bossclicking/ /datum/boss_action/ var/mob/owner = null -/datum/boss_action/proc/set_owner(mob/owner_mob) // Assigns owner reference, makes some of the ability code easier. null will null the owner value. - if(!owner_mob) - if(owner) - owner = null - else - return - owner = owner_mob - return +/datum/boss_action/New() // Assigns owner reference, makes some of the ability code easier. null will null the owner value. + . = ..() + owner = src /datum/boss_action/proc/switch_action() // Called to switch the active action. This also defines which action is getting its cooldown set etc var/mob/living/pve_boss/boss_mob = owner