From f0bc1cc70c9ad714b8d35d14c8671b09e402ae20 Mon Sep 17 00:00:00 2001 From: AnturK Date: Fri, 10 Apr 2015 22:37:47 +0200 Subject: [PATCH] - Adds action buttons for aliens --- code/datums/mind.dm | 8 ++- code/modules/mob/living/carbon/alien/alien.dm | 10 +++ .../carbon/alien/humanoid/alien_powers.dm | 58 ++++++++++++++++-- .../carbon/alien/humanoid/caste/drone.dm | 2 + .../mob/living/carbon/alien/humanoid/queen.dm | 2 + .../mob/living/carbon/alien/larva/powers.dm | 4 ++ icons/mob/actions.dmi | Bin 11704 -> 18802 bytes 7 files changed, 77 insertions(+), 7 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 0583bb6e072..b968b98c216 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -80,8 +80,7 @@ current = new_character //associate ourself with our new body new_character.mind = src //and associate our new body with ourself transfer_antag_huds(new_character) //inherit the antag HUDs from this mind (TODO: move this to a possible antag datum) - if(spell_list.len > 0) - transfer_mindbound_actions(new_character) + transfer_actions(new_character) if(active) new_character.key = key //now transfer the key to link the client to our new body @@ -1325,6 +1324,11 @@ spell.action.background_icon_state = spell.action_background_icon_state spell.action.Grant(current) return +/datum/mind/proc/transfer_actions(var/mob/living/new_character) + if(current && current.actions) + for(var/datum/action/A in current.actions) + A.Grant(new_character) + transfer_mindbound_actions(new_character) /datum/mind/proc/transfer_mindbound_actions(var/mob/living/new_character) for(var/obj/effect/proc_holder/spell/spell in spell_list) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 86cd8abf179..e86670e0281 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -154,6 +154,16 @@ /mob/living/carbon/alien/proc/AddAbility(var/obj/effect/proc_holder/alien/A) abilities.Add(A) A.on_gain(src) + if(A.has_action) + if(!A.action) + A.action = new/datum/action/spell_action/alien + A.action.target = A + A.action.name = A.name + A.action.button_icon = A.action_icon + A.action.button_icon_state = A.action_icon_state + A.action.background_icon_state = A.action_background_icon_state + A.action.Grant(src) + /mob/living/carbon/alien/proc/add_abilities_to_panel() for(var/obj/effect/proc_holder/alien/A in abilities) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 43314e72e60..f5fa526654f 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -4,18 +4,47 @@ These are general powers. Specific powers are stored under the appropriate alien /*Alien spit now works like a taser shot. It won't home in on the target but will act the same once it does hit. Doesn't work on other aliens/AI.*/ + +/datum/action/spell_action/alien + +/datum/action/spell_action/alien/UpdateName() + var/obj/effect/proc_holder/alien/ab = target + return ab.name + +/datum/action/spell_action/alien/IsAvailable() + if(!target) + return 0 + var/obj/effect/proc_holder/alien/ab = target + + if(usr) + return ab.cost_check(ab.check_turf,usr,1) + else + if(owner) + return ab.cost_check(ab.check_turf,owner,1) + return 1 + +/datum/action/spell_action/alien/CheckRemoval() + return !isalien(owner) + + /obj/effect/proc_holder/alien name = "Alien Power" panel = "Alien" var/plasma_cost = 0 var/check_turf = 0 + var/has_action = 1 + var/datum/action/spell_action/alien/action = null + var/action_icon = 'icons/mob/actions.dmi' + var/action_icon_state = "spell_default" + var/action_background_icon_state = "bg_alien" + /obj/effect/proc_holder/alien/Click() if(!istype(usr,/mob/living/carbon/alien)) return 1 var/mob/living/carbon/alien/user = usr if(cost_check(check_turf,user)) - if(fire(user)) + if(fire(user) && user) // Second check to prevent runtimes when evolving user.adjustToxLoss(-plasma_cost) return 1 @@ -25,15 +54,18 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/proc/fire(var/mob/living/carbon/alien/user) return 1 -/obj/effect/proc_holder/alien/proc/cost_check(check_turf=0,var/mob/living/carbon/alien/user) +/obj/effect/proc_holder/alien/proc/cost_check(check_turf=0,var/mob/living/carbon/alien/user,var/silent = 0) if(user.stat) - user << "You must be conscious to do this." + if(!silent) + user << "You must be conscious to do this." return 0 if(user.getPlasma() < plasma_cost) - user << "Not enough plasma stored." + if(!silent) + user << "Not enough plasma stored." return 0 if(check_turf && (!isturf(user.loc) || istype(user.loc, /turf/space))) - user << "Bad place for a garden!" + if(!silent) + user << "Bad place for a garden!" return 0 return 1 @@ -43,6 +75,8 @@ Doesn't work on other aliens/AI.*/ plasma_cost = 50 check_turf = 1 + action_icon_state = "alien_plant" + /obj/effect/proc_holder/alien/plant/fire(var/mob/living/carbon/alien/user) if(locate(/obj/structure/alien/weeds/node) in get_turf(user)) src << "There's already a weed node here." @@ -57,6 +91,8 @@ Doesn't work on other aliens/AI.*/ desc = "Whisper to someone" plasma_cost = 10 + action_icon_state = "alien_whisper" + /obj/effect/proc_holder/alien/whisper/fire(var/mob/living/carbon/alien/user) var/mob/M = input("Select who to whisper to:","Whisper to?",null) as mob in oview(user) if(!M) @@ -75,6 +111,8 @@ Doesn't work on other aliens/AI.*/ desc = "Transfer Plasma to another alien" plasma_cost = 0 + action_icon_state = "alien_transfer" + /obj/effect/proc_holder/alien/transfer/fire(var/mob/living/carbon/alien/user) var/list/mob/living/carbon/alien/aliens_around = list() for(var/mob/living/carbon/alien/A in oview(user)) @@ -101,6 +139,8 @@ Doesn't work on other aliens/AI.*/ desc = "Drench an object in acid, destroying it over time." plasma_cost = 200 + action_icon_state = "alien_acid" + /obj/effect/proc_holder/alien/acid/on_gain(var/mob/living/carbon/alien/user) user.verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid) @@ -157,6 +197,8 @@ Doesn't work on other aliens/AI.*/ desc = "Spits neurotoxin at someone, paralyzing them for a short time." plasma_cost = 50 + action_icon_state = "alien_neurotoxin" + /obj/effect/proc_holder/alien/neurotoxin/fire(var/mob/living/carbon/alien/user) user.visible_message("[user] spits neurotoxin!", "You spit neurotoxin.") @@ -180,6 +222,8 @@ Doesn't work on other aliens/AI.*/ plasma_cost = 55 check_turf = 1 + action_icon_state = "alien_resin" + /obj/effect/proc_holder/alien/resin/fire(var/mob/living/carbon/alien/user) if(locate(/obj/structure/alien/resin) in user.loc.contents) user << "There is already a resin structure there." @@ -206,6 +250,8 @@ Doesn't work on other aliens/AI.*/ desc = "Empties the contents of your stomach" plasma_cost = 0 + action_icon_state = "alien_barf" + /obj/effect/proc_holder/alien/regurgitate/fire(var/mob/living/carbon/alien/user) if(user.stomach_contents.len) for(var/atom/movable/A in user.stomach_contents) @@ -221,6 +267,8 @@ Doesn't work on other aliens/AI.*/ desc = "Toggles Night Vision" plasma_cost = 0 + has_action = 0 // Has dedicated GUI button already + /obj/effect/proc_holder/alien/nightvisiontoggle/fire(var/mob/living/carbon/alien/user) if(!user.nightvision) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index a572cd2d80e..a18f4b2ee00 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -29,6 +29,8 @@ desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time." plasma_cost = 500 + action_icon_state = "alien_evolve_drone" + /obj/effect/proc_holder/alien/evolve/fire(var/mob/living/carbon/alien/user) var/no_queen = 1 for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list) diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 3919492a553..9670240e4aa 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -63,6 +63,8 @@ plasma_cost = 75 check_turf = 1 + action_icon_state = "alien_egg" + /obj/effect/proc_holder/alien/lay_egg/fire(var/mob/living/carbon/alien/user) if(locate(/obj/structure/alien/egg) in get_turf(user)) user << "There's already an egg here." diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm index 8a4cbfea95a..cf2c73a96c6 100644 --- a/code/modules/mob/living/carbon/alien/larva/powers.dm +++ b/code/modules/mob/living/carbon/alien/larva/powers.dm @@ -3,6 +3,8 @@ desc = "Allows to hide beneath tables or certain items. Toggled on or off." plasma_cost = 0 + action_icon_state = "alien_hide" + /obj/effect/proc_holder/alien/hide/fire(var/mob/living/carbon/alien/user) if(user.stat != CONSCIOUS) return @@ -23,6 +25,8 @@ desc = "Evolve into a fully grown Alien." plasma_cost = 0 + action_icon_state = "alien_evolve_larva" + /obj/effect/proc_holder/alien/larva_evolve/fire(var/mob/living/carbon/alien/user) if(!islarva(user)) return diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 568fbd295d64262f274c6cacf7788901edc5f2c1..d7034b07271e76033a8262672d14456a8e014a54 100644 GIT binary patch literal 18802 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 qV0_{|)BPhweBwRR{W^4vNBnZ-SDp8 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 HS;PMiClDd7