From 583bfdc66ae51dd26adeb08833c8fdeb1ab71a48 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Sun, 24 Mar 2019 23:34:49 +1300 Subject: [PATCH] Ling HUD icons Adds a shit load of HUD icons for changeling actions. --- code/datums/mind.dm | 5 +++++ .../changeling/cellular_emporium.dm | 2 +- .../changeling/changeling_power.dm | 2 ++ .../antagonists/changeling/powers/absorb.dm | 3 +++ .../changeling/powers/adrenaline.dm | 3 +++ .../changeling/powers/augmented_eyesight.dm | 5 +++++ .../changeling/powers/biodegrade.dm | 3 +++ .../changeling/powers/chameleon_skin.dm | 4 ++++ .../changeling/powers/digitalcamo.dm | 4 ++++ .../changeling/powers/fakedeath.dm | 7 +++++- .../changeling/powers/fleshmend.dm | 3 +++ .../antagonists/changeling/powers/headcrab.dm | 3 +++ .../antagonists/changeling/powers/hivemind.dm | 19 ++++++++++++++++ .../changeling/powers/humanform.dm | 3 +++ .../changeling/powers/lesserform.dm | 3 +++ .../antagonists/changeling/powers/linglink.dm | 3 +++ .../changeling/powers/mimic_voice.dm | 3 +++ .../changeling/powers/mutations.dm | 17 ++++++++++++++ .../antagonists/changeling/powers/panacea.dm | 3 +++ .../changeling/powers/pheromone_receptors.dm | 3 +++ .../changeling/powers/regenerate.dm | 3 +++ .../antagonists/changeling/powers/revive.dm | 4 ++++ .../antagonists/changeling/powers/shriek.dm | 6 +++++ .../antagonists/changeling/powers/spiders.dm | 3 +++ .../changeling/powers/strained_muscles.dm | 3 +++ .../changeling/powers/tiny_prick.dm | 21 ++++++++++++++++++ .../changeling/powers/transform.dm | 3 +++ code/modules/mob/transform_procs.dm | 9 +++++--- icons/mob/actions/actions_changeling.dmi | Bin 0 -> 22156 bytes icons/mob/actions/backgrounds.dmi | Bin 5866 -> 6011 bytes 30 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 icons/mob/actions/actions_changeling.dmi diff --git a/code/datums/mind.dm b/code/datums/mind.dm index d467d8fd9d..741822d546 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -752,6 +752,11 @@ for(var/X in spell_list) var/obj/effect/proc_holder/spell/S = X S.action.Grant(new_character) + var/datum/antagonist/changeling/changeling = new_character.mind.has_antag_datum(/datum/antagonist/changeling) + if(changeling) + for(var/P in changeling.purchasedpowers) + var/obj/effect/proc_holder/changeling/I = P + I.action.Grant(new_character) /datum/mind/proc/disrupt_spells(delay, list/exceptions = New()) for(var/X in spell_list) diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm index 2a37a3885d..3cf0a3ee25 100644 --- a/code/modules/antagonists/changeling/cellular_emporium.dm +++ b/code/modules/antagonists/changeling/cellular_emporium.dm @@ -72,7 +72,7 @@ name = "Cellular Emporium" icon_icon = 'icons/obj/drinks.dmi' button_icon_state = "changelingsting" - background_icon_state = "bg_alien" + background_icon_state = "bg_ling" var/datum/cellular_emporium/cellular_emporium /datum/action/innate/cellular_emporium/New(our_target) diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index c89dc50cec..1d4f15ec9d 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -20,10 +20,12 @@ /obj/effect/proc_holder/changeling/proc/on_purchase(mob/user, is_respec) + action.Grant(user) if(!is_respec) SSblackbox.record_feedback("tally", "changeling_power_purchase", 1, name) /obj/effect/proc_holder/changeling/proc/on_refund(mob/user) + action.Remove(user) return /obj/effect/proc_holder/changeling/Click() diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 2f8fc6943f..34a8231960 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -4,6 +4,9 @@ chemical_cost = 0 dna_cost = 0 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_absorb_dna" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/absorbDNA/can_sting(mob/living/carbon/user) if(!..()) diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 34d6e3605b..ede14a23c9 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -6,6 +6,9 @@ dna_cost = 2 req_human = 1 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_adrenals" + action_background_icon_state = "bg_ling" //Recover from stuns. /obj/effect/proc_holder/changeling/adrenaline/sting_action(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm index 5ec5440a2b..6eafeda63f 100644 --- a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm +++ b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm @@ -8,12 +8,16 @@ chemical_cost = 0 dna_cost = 2 //Would be 1 without thermal vision active = FALSE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_augmented_eyesight" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/augmented_eyesight/on_purchase(mob/user) //The ability starts inactive, so we should be protected from flashes. var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES) if (E) E.flash_protect = 2 //Adjust the user's eyes' flash protection to_chat(user, "We adjust our eyes to protect them from bright lights.") + action.Grant(user) else to_chat(user, "We can't adjust our eyes if we don't have any!") @@ -42,6 +46,7 @@ /obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user) //Get rid of X-ray vision and flash protection when the user refunds this ability + action.Remove(user) var/obj/item/organ/eyes/E = user.getorganslot(ORGAN_SLOT_EYES) if(E) if (active) diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index d1a2cc3891..f58b90d8e6 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -6,6 +6,9 @@ loudness = 1 dna_cost = 2 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_freedom" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user) var/used = FALSE // only one form of shackles removed per use diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm index 3be5103105..b7545353b2 100644 --- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm +++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm @@ -5,6 +5,9 @@ dna_cost = 2 chemical_cost = 25 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_camouflage" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/chameleon_skin/sting_action(mob/user) var/mob/living/carbon/human/H = user //SHOULD always be human, because req_human = 1 @@ -18,6 +21,7 @@ return TRUE /obj/effect/proc_holder/changeling/chameleon_skin/on_refund(mob/user) + action.Remove(user) if(user.has_dna()) var/mob/living/carbon/C = user var/datum/mutation/human/HM = GLOB.mutations_list[CHAMELEON] diff --git a/code/modules/antagonists/changeling/powers/digitalcamo.dm b/code/modules/antagonists/changeling/powers/digitalcamo.dm index e8bad0e215..6a0f78b532 100644 --- a/code/modules/antagonists/changeling/powers/digitalcamo.dm +++ b/code/modules/antagonists/changeling/powers/digitalcamo.dm @@ -4,6 +4,9 @@ helptext = "We cannot be tracked by camera or seen by AI units while using this skill. However, humans looking at us will find us... uncanny. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_digital_camo" + action_background_icon_state = "bg_ling" //Prevents AIs tracking you but makes you easily detectable to the human-eye. /obj/effect/proc_holder/changeling/digitalcamo/sting_action(mob/user) @@ -19,5 +22,6 @@ return TRUE /obj/effect/proc_holder/changeling/digitalcamo/on_refund(mob/user) + action.Remove(user) user.digitalcamo = 0 user.digitalinvis = 0 \ No newline at end of file diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index 753d858cef..41438bcebd 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -6,6 +6,9 @@ req_dna = 1 req_stat = DEAD ignores_fakedeath = TRUE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_regenerative_stasis" + action_background_icon_state = "bg_ling" //Fake our own death and fully heal. You will appear to be dead but regenerate fully after a short delay. /obj/effect/proc_holder/changeling/fakedeath/sting_action(mob/living/user) @@ -25,7 +28,9 @@ var/datum/antagonist/changeling/C = user.mind.has_antag_datum(/datum/antagonist/changeling) if(C && C.purchasedpowers) to_chat(user, "We are ready to revive.") - C.purchasedpowers += new /obj/effect/proc_holder/changeling/revive(null) + var/obj/effect/proc_holder/changeling/revive/RV = new /obj/effect/proc_holder/changeling/revive(null) + C.purchasedpowers += RV + RV.action.Grant(user) /obj/effect/proc_holder/changeling/fakedeath/can_sting(mob/living/user) if(user.has_trait(TRAIT_DEATHCOMA, "changeling")) diff --git a/code/modules/antagonists/changeling/powers/fleshmend.dm b/code/modules/antagonists/changeling/powers/fleshmend.dm index 930b756b65..9672d79ee4 100644 --- a/code/modules/antagonists/changeling/powers/fleshmend.dm +++ b/code/modules/antagonists/changeling/powers/fleshmend.dm @@ -5,6 +5,9 @@ chemical_cost = 20 dna_cost = 2 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_fleshmend" + action_background_icon_state = "bg_ling" //Starts healing you every second for 10 seconds. //Can be used whilst unconscious. diff --git a/code/modules/antagonists/changeling/powers/headcrab.dm b/code/modules/antagonists/changeling/powers/headcrab.dm index 8a932dbd62..72d8a127ab 100644 --- a/code/modules/antagonists/changeling/powers/headcrab.dm +++ b/code/modules/antagonists/changeling/powers/headcrab.dm @@ -6,6 +6,9 @@ dna_cost = 1 loudness = 2 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_explode" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/headcrab/sting_action(mob/user) set waitfor = FALSE diff --git a/code/modules/antagonists/changeling/powers/hivemind.dm b/code/modules/antagonists/changeling/powers/hivemind.dm index 86926f51a9..b72123da6f 100644 --- a/code/modules/antagonists/changeling/powers/hivemind.dm +++ b/code/modules/antagonists/changeling/powers/hivemind.dm @@ -5,6 +5,16 @@ helptext = "We will be able to talk with other changelings with :g. Exchanged DNA do not count towards absorb objectives." dna_cost = 1 chemical_cost = -1 + action_icon = 'icons/mob/actions/actions_xeno.dmi' + action_icon_state = "alien_whisper" + action_background_icon_state = "bg_ling" + +/obj/effect/proc_holder/changeling/hivemind_comms/sting_action(var/mob/living/user) + if (user.has_trait(CHANGELING_HIVEMIND_MUTE)) + to_chat(user, "The poison in the air hinders our ability to interact with the hivemind.") + return + var/input = stripped_input(usr, "Please choose a message to transmit.", "Changeling Hivemind", "") + user.say(".g[input]") /obj/effect/proc_holder/changeling/hivemind_comms/on_purchase(mob/user, is_respec) ..() @@ -14,12 +24,15 @@ var/obj/effect/proc_holder/changeling/hivemind_upload/S1 = new if(!changeling.has_sting(S1)) changeling.purchasedpowers+=S1 + S1.action.Grant(user) var/obj/effect/proc_holder/changeling/hivemind_download/S2 = new if(!changeling.has_sting(S2)) changeling.purchasedpowers+=S2 + S2.action.Grant(user) var/obj/effect/proc_holder/changeling/linglink/S3 = new if(!changeling.has_sting(S3)) changeling.purchasedpowers+=S3 + S3.action.Grant(user) // HIVE MIND UPLOAD/DOWNLOAD DNA GLOBAL_LIST_EMPTY(hivemind_bank) @@ -29,6 +42,9 @@ GLOBAL_LIST_EMPTY(hivemind_bank) desc = "Allows us to channel DNA in the airwaves to allow other changelings to absorb it." chemical_cost = 10 dna_cost = -1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_upload" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/hivemind_upload/sting_action(var/mob/living/user) if (user.has_trait(CHANGELING_HIVEMIND_MUTE)) @@ -63,6 +79,9 @@ GLOBAL_LIST_EMPTY(hivemind_bank) desc = "Allows us to absorb DNA that has been channeled to the airwaves. Does not count towards absorb objectives." chemical_cost = 10 dna_cost = -1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_download" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/hivemind_download/can_sting(mob/living/carbon/user) if(!..()) diff --git a/code/modules/antagonists/changeling/powers/humanform.dm b/code/modules/antagonists/changeling/powers/humanform.dm index e04f00308f..a6f7b0b6e9 100644 --- a/code/modules/antagonists/changeling/powers/humanform.dm +++ b/code/modules/antagonists/changeling/powers/humanform.dm @@ -3,6 +3,9 @@ desc = "We change into a human." chemical_cost = 5 req_dna = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_human" + action_background_icon_state = "bg_ling" //Transform into a human. /obj/effect/proc_holder/changeling/humanform/sting_action(mob/living/carbon/user) diff --git a/code/modules/antagonists/changeling/powers/lesserform.dm b/code/modules/antagonists/changeling/powers/lesserform.dm index 24403b406c..1f9ca0b3ff 100644 --- a/code/modules/antagonists/changeling/powers/lesserform.dm +++ b/code/modules/antagonists/changeling/powers/lesserform.dm @@ -5,6 +5,9 @@ dna_cost = 1 loudness = 2 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_lesser" + action_background_icon_state = "bg_ling" //Transform into a monkey. /obj/effect/proc_holder/changeling/lesserform/sting_action(mob/living/carbon/human/user) diff --git a/code/modules/antagonists/changeling/powers/linglink.dm b/code/modules/antagonists/changeling/powers/linglink.dm index baa02ea7c8..70df78e3b4 100644 --- a/code/modules/antagonists/changeling/powers/linglink.dm +++ b/code/modules/antagonists/changeling/powers/linglink.dm @@ -4,6 +4,9 @@ chemical_cost = 0 dna_cost = -1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_link" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/linglink/can_sting(mob/living/carbon/user) if(!..()) diff --git a/code/modules/antagonists/changeling/powers/mimic_voice.dm b/code/modules/antagonists/changeling/powers/mimic_voice.dm index 6808ecd61a..170aea1e9c 100644 --- a/code/modules/antagonists/changeling/powers/mimic_voice.dm +++ b/code/modules/antagonists/changeling/powers/mimic_voice.dm @@ -5,6 +5,9 @@ chemical_cost = 0 //constant chemical drain hardcoded dna_cost = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_mimic_voice" + action_background_icon_state = "bg_ling" // Fake Voice diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 9e353a1855..3d6c766307 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -56,6 +56,7 @@ return W /obj/effect/proc_holder/changeling/weapon/on_refund(mob/user) + action.Remove(user) for(var/obj/item/I in user.held_items) check_weapon(user, I) @@ -105,6 +106,7 @@ /obj/effect/proc_holder/changeling/suit/on_refund(mob/user) if(!ishuman(user)) return + action.Remove(user) var/mob/living/carbon/human/H = user check_suit(H) @@ -141,6 +143,9 @@ req_human = 1 weapon_type = /obj/item/melee/arm_blade weapon_name_simple = "blade" + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_armblade" + action_background_icon_state = "bg_ling" /obj/item/melee/arm_blade name = "arm blade" @@ -225,6 +230,9 @@ weapon_type = /obj/item/gun/magic/tentacle weapon_name_simple = "tentacle" silent = TRUE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_tentacle" + action_background_icon_state = "bg_ling" /obj/item/gun/magic/tentacle name = "tentacle" @@ -401,6 +409,9 @@ dna_cost = 1 loudness = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_shield" + action_background_icon_state = "bg_ling" weapon_type = /obj/item/shield/changeling weapon_name_simple = "shield" @@ -454,6 +465,9 @@ dna_cost = 2 loudness = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_space_suit" + action_background_icon_state = "bg_ling" suit_type = /obj/item/clothing/suit/space/changeling helmet_type = /obj/item/clothing/head/helmet/space/changeling @@ -503,6 +517,9 @@ loudness = 2 req_human = 1 recharge_slowdown = 0.25 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_armor" + action_background_icon_state = "bg_ling" suit_type = /obj/item/clothing/suit/armor/changeling helmet_type = /obj/item/clothing/head/helmet/changeling diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index cb5aba6c99..9f7a36f214 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -5,6 +5,9 @@ chemical_cost = 20 dna_cost = 1 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_anatomic_panacea" + action_background_icon_state = "bg_ling" //Heals the things that the other regenerative abilities don't. /obj/effect/proc_holder/changeling/panacea/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm index c3fe3c9bc0..4995b27807 100644 --- a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm +++ b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm @@ -10,6 +10,9 @@ chemical_cost = 0 //Reduces regain rate while active. dna_cost = 2 var/receptors_active = FALSE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_pheromone" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/pheromone_receptors/sting_action(mob/living/carbon/user) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) diff --git a/code/modules/antagonists/changeling/powers/regenerate.dm b/code/modules/antagonists/changeling/powers/regenerate.dm index c86bf271d4..a1f8e1ef9b 100644 --- a/code/modules/antagonists/changeling/powers/regenerate.dm +++ b/code/modules/antagonists/changeling/powers/regenerate.dm @@ -8,6 +8,9 @@ chemical_cost = 10 dna_cost = 0 req_stat = UNCONSCIOUS + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_regenerate" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/regenerate/sting_action(mob/living/user) to_chat(user, "You feel an itching, both inside and \ diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index 937748a7ef..514b7603fd 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -5,6 +5,9 @@ req_stat = DEAD always_keep = TRUE ignores_fakedeath = TRUE + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_revive" + action_background_icon_state = "bg_ling" //Revive from revival stasis /obj/effect/proc_holder/changeling/revive/sting_action(mob/living/carbon/user) @@ -26,6 +29,7 @@ to_chat(user, "We have revived ourselves.") var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.purchasedpowers -= src + src.action.Remove(user) return TRUE /obj/effect/proc_holder/changeling/revive/can_be_used_by(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm index f77624d072..65e58ae65b 100644 --- a/code/modules/antagonists/changeling/powers/shriek.dm +++ b/code/modules/antagonists/changeling/powers/shriek.dm @@ -6,6 +6,9 @@ dna_cost = 1 loudness = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_resonant" + action_background_icon_state = "bg_ling" //A flashy ability, good for crowd control and sewing chaos. /obj/effect/proc_holder/changeling/resonant_shriek/sting_action(mob/user) @@ -36,6 +39,9 @@ chemical_cost = 20 dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_dissonant" + action_background_icon_state = "bg_ling" //A flashy ability, good for crowd control and sewing chaos. /obj/effect/proc_holder/changeling/dissonant_shriek/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/spiders.dm b/code/modules/antagonists/changeling/powers/spiders.dm index 2bd1bc8a35..489f646b39 100644 --- a/code/modules/antagonists/changeling/powers/spiders.dm +++ b/code/modules/antagonists/changeling/powers/spiders.dm @@ -6,6 +6,9 @@ dna_cost = 1 loudness = 4 req_absorbs = 3 + action_icon = 'icons/effects/effects.dmi' + action_icon_state = "spiderling" + action_background_icon_state = "bg_ling" //Makes some spiderlings. Good for setting traps and causing general trouble. /obj/effect/proc_holder/changeling/spiders/sting_action(mob/user) diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index 832f6073b6..4e8b8adbd1 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -10,6 +10,9 @@ req_human = 1 var/stacks = 0 //Increments every 5 seconds; damage increases over time active = 0 //Whether or not you are a hedgehog + action_icon = 'icons/obj/implants.dmi' + action_icon_state = "adrenal" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/strained_muscles/sting_action(mob/living/carbon/user) active = !active diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 6c9e0c6599..b9abf76fd1 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -70,6 +70,9 @@ dna_cost = 3 loudness = 1 var/datum/changelingprofile/selected_dna = null + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_transform" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/transformation/Click() var/mob/user = usr @@ -117,6 +120,9 @@ chemical_cost = 20 dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_fake" + action_background_icon_state = "bg_ling" /obj/item/melee/arm_blade/false desc = "A grotesque mass of flesh that used to be your arm. Although it looks dangerous at first, you can tell it's actually quite dull and useless." @@ -169,6 +175,9 @@ sting_icon = "sting_extract" chemical_cost = 25 dna_cost = 0 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_extract" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/extract_dna/can_sting(mob/user, mob/target) if(..()) @@ -190,6 +199,9 @@ chemical_cost = 20 dna_cost = 2 loudness = 2 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_mute" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/mute/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "mute sting") @@ -204,6 +216,9 @@ chemical_cost = 25 dna_cost = 1 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_blind" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/blind/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "blind sting") @@ -220,6 +235,9 @@ sting_icon = "sting_lsd" chemical_cost = 10 dna_cost = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_lsd" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) log_combat(user, target, "stung", "LSD sting") @@ -238,6 +256,9 @@ chemical_cost = 15 dna_cost = 2 loudness = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_sting_cryo" + action_background_icon_state = "bg_ling" /obj/effect/proc_holder/changeling/sting/cryo/sting_action(mob/user, mob/target) log_combat(user, target, "stung", "cryo sting") diff --git a/code/modules/antagonists/changeling/powers/transform.dm b/code/modules/antagonists/changeling/powers/transform.dm index 1e2b22cdae..767c7d2621 100644 --- a/code/modules/antagonists/changeling/powers/transform.dm +++ b/code/modules/antagonists/changeling/powers/transform.dm @@ -5,6 +5,9 @@ dna_cost = 0 req_dna = 1 req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_transform" + action_background_icon_state = "bg_ling" /obj/item/clothing/glasses/changeling name = "flesh" diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 342ee386b6..5703e2190b 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -96,7 +96,9 @@ mind.transfer_to(O) var/datum/antagonist/changeling/changeling = O.mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) - changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) + var/obj/effect/proc_holder/changeling/humanform/HF = new /obj/effect/proc_holder/changeling/humanform(null) + changeling.purchasedpowers += HF + HF.action.Grant(O) for(var/X in internal_organs) var/obj/item/organ/I = X @@ -129,8 +131,9 @@ mind.transfer_to(O) var/datum/antagonist/changeling/changeling = O.mind.has_antag_datum(/datum/antagonist/changeling) if(changeling) - changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null) - + var/obj/effect/proc_holder/changeling/humanform/HF = new /obj/effect/proc_holder/changeling/humanform(null) + changeling.purchasedpowers += HF + HF.action.Grant(O) if (tr_flags & TR_DEFAULTMSG) to_chat(O, "You are now a monkey.") diff --git a/icons/mob/actions/actions_changeling.dmi b/icons/mob/actions/actions_changeling.dmi new file mode 100644 index 0000000000000000000000000000000000000000..ce6b81e13ba6eaafe99eb8923dd8c1694bb08394 GIT binary patch literal 22156 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 QbN~PV07*qoM6N<$f{9aUAOHXW literal 0 HcmV?d00001 diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index 4303c6fff6ca1f7ecde5dc517ac13b450d5a65ca..82303c5862312d40f2be1fb426a503361e126a5a 100644 GIT binary patch literal 6011 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 DE;OS3 literal 5866 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 Lb=4|Wtit{S4!Ut#