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 0000000000..ce6b81e13b Binary files /dev/null and b/icons/mob/actions/actions_changeling.dmi differ diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index 4303c6fff6..82303c5862 100644 Binary files a/icons/mob/actions/backgrounds.dmi and b/icons/mob/actions/backgrounds.dmi differ