Skip to content

Commit

Permalink
Reorganizes Xeno/Actions.dmi (#16062)
Browse files Browse the repository at this point in the history
  • Loading branch information
Helg2 committed Jun 17, 2024
1 parent 8354687 commit 53646c4
Show file tree
Hide file tree
Showing 69 changed files with 242 additions and 99 deletions.
107 changes: 53 additions & 54 deletions code/__DEFINES/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,101 +58,100 @@

//List of weed types
GLOBAL_LIST_INIT(weed_type_list, typecacheof(list(
/obj/alien/weeds/node,
/obj/alien/weeds/node/sticky,
/obj/alien/weeds/node/resting,
)))
/obj/alien/weeds/node,
/obj/alien/weeds/node/sticky,
/obj/alien/weeds/node/resting,
)))

//List of weeds with probability of spawning
GLOBAL_LIST_INIT(weed_prob_list, list(
/obj/alien/weeds/node = 80,
/obj/alien/weeds/node/sticky = 5,
/obj/alien/weeds/node/resting = 10,
))
/obj/alien/weeds/node = 80,
/obj/alien/weeds/node/sticky = 5,
/obj/alien/weeds/node/resting = 10,
))

//List of weed images
GLOBAL_LIST_INIT(weed_images_list, list(
WEED = image('icons/Xeno/actions.dmi', icon_state = WEED),
STICKY_WEED = image('icons/Xeno/actions.dmi', icon_state = STICKY_WEED),
RESTING_WEED = image('icons/Xeno/actions.dmi', icon_state = RESTING_WEED),
AUTOMATIC_WEEDING = image('icons/Xeno/actions.dmi', icon_state = AUTOMATIC_WEEDING)
))
WEED = image('icons/Xeno/actions/construction.dmi', icon_state = WEED),
STICKY_WEED = image('icons/Xeno/actions/construction.dmi', icon_state = STICKY_WEED),
RESTING_WEED = image('icons/Xeno/actions/construction.dmi', icon_state = RESTING_WEED),
AUTOMATIC_WEEDING = image('icons/Xeno/actions/general.dmi', icon_state = AUTOMATIC_WEEDING)
))

//List of pheromone images
GLOBAL_LIST_INIT(pheromone_images_list, list(
AURA_XENO_RECOVERY = image('icons/Xeno/actions.dmi', icon_state = AURA_XENO_RECOVERY),
AURA_XENO_WARDING = image('icons/Xeno/actions.dmi', icon_state = AURA_XENO_WARDING),
AURA_XENO_FRENZY = image('icons/Xeno/actions.dmi', icon_state = AURA_XENO_FRENZY),
))
AURA_XENO_RECOVERY = image('icons/Xeno/actions/general.dmi', icon_state = AURA_XENO_RECOVERY),
AURA_XENO_WARDING = image('icons/Xeno/actions/general.dmi', icon_state = AURA_XENO_WARDING),
AURA_XENO_FRENZY = image('icons/Xeno/actions/general.dmi', icon_state = AURA_XENO_FRENZY),
))

//List of Defiler toxin types available for selection
GLOBAL_LIST_INIT(defiler_toxin_type_list, list(
/datum/reagent/toxin/xeno_neurotoxin,
/datum/reagent/toxin/xeno_hemodile,
/datum/reagent/toxin/xeno_transvitox,
/datum/reagent/toxin/xeno_ozelomelyn,
))
/datum/reagent/toxin/xeno_neurotoxin,
/datum/reagent/toxin/xeno_hemodile,
/datum/reagent/toxin/xeno_transvitox,
/datum/reagent/toxin/xeno_ozelomelyn,
))

//List of toxins improving defile's damage
GLOBAL_LIST_INIT(defiler_toxins_typecache_list, typecacheof(list(
/datum/reagent/toxin/xeno_ozelomelyn,
/datum/reagent/toxin/xeno_hemodile,
/datum/reagent/toxin/xeno_transvitox,
/datum/reagent/toxin/xeno_neurotoxin,
/datum/reagent/toxin/xeno_sanguinal,
/datum/status_effect/stacking/intoxicated,
)))
/datum/reagent/toxin/xeno_ozelomelyn,
/datum/reagent/toxin/xeno_hemodile,
/datum/reagent/toxin/xeno_transvitox,
/datum/reagent/toxin/xeno_neurotoxin,
/datum/reagent/toxin/xeno_sanguinal,
/datum/status_effect/stacking/intoxicated,
)))

//List of Baneling chemical types available for selection
GLOBAL_LIST_INIT(baneling_chem_type_list, list(
/datum/reagent/toxin/xeno_neurotoxin,
/datum/reagent/toxin/acid,
))
/datum/reagent/toxin/xeno_neurotoxin,
/datum/reagent/toxin/acid,
))

//List of plant types
GLOBAL_LIST_INIT(plant_type_list, list(
/obj/structure/xeno/plant/heal_fruit,
/obj/structure/xeno/plant/armor_fruit,
/obj/structure/xeno/plant/plasma_fruit,
/obj/structure/xeno/plant/stealth_plant
))
/obj/structure/xeno/plant/heal_fruit,
/obj/structure/xeno/plant/armor_fruit,
/obj/structure/xeno/plant/plasma_fruit,
/obj/structure/xeno/plant/stealth_plant
))

//List of plant images
GLOBAL_LIST_INIT(plant_images_list, list(
HEAL_PLANT = image('icons/Xeno/plants.dmi', icon_state = "heal_fruit"),
ARMOR_PLANT = image('icons/Xeno/plants.dmi', icon_state = "armor_fruit"),
PLASMA_PLANT = image('icons/Xeno/plants.dmi', icon_state = "plasma_fruit"),
STEALTH_PLANT = image('icons/Xeno/plants.dmi', icon_state = "stealth_plant")
))
HEAL_PLANT = image('icons/Xeno/plants.dmi', icon_state = "heal_fruit"),
ARMOR_PLANT = image('icons/Xeno/plants.dmi', icon_state = "armor_fruit"),
PLASMA_PLANT = image('icons/Xeno/plants.dmi', icon_state = "plasma_fruit"),
STEALTH_PLANT = image('icons/Xeno/plants.dmi', icon_state = "stealth_plant")
))

//List of resin structure images
GLOBAL_LIST_INIT(resin_images_list, list(
RESIN_WALL = image('icons/Xeno/actions.dmi', icon_state = RESIN_WALL),
STICKY_RESIN = image('icons/Xeno/actions.dmi', icon_state = STICKY_RESIN),
RESIN_DOOR = image('icons/Xeno/actions.dmi', icon_state = RESIN_DOOR)
))
RESIN_WALL = image('icons/Xeno/actions/construction.dmi', icon_state = RESIN_WALL),
STICKY_RESIN = image('icons/Xeno/actions/construction.dmi', icon_state = STICKY_RESIN),
RESIN_DOOR = image('icons/Xeno/actions/construction.dmi', icon_state = RESIN_DOOR)
))

//List of special resin structure images
GLOBAL_LIST_INIT(resin_special_images_list, list(
BULLETPROOF_WALL = image('icons/Xeno/actions.dmi', icon_state = BULLETPROOF_WALL),
FIREPROOF_WALL = image('icons/Xeno/actions.dmi', icon_state = FIREPROOF_WALL),
HARDY_WALL = image('icons/Xeno/actions.dmi', icon_state = HARDY_WALL)
BULLETPROOF_WALL = image('icons/Xeno/actions/construction.dmi', icon_state = BULLETPROOF_WALL),
FIREPROOF_WALL = image('icons/Xeno/actions/construction.dmi', icon_state = FIREPROOF_WALL),
HARDY_WALL = image('icons/Xeno/actions/construction.dmi', icon_state = HARDY_WALL)
))

//List of puppeteer pheromone images
GLOBAL_LIST_INIT(puppeteer_phero_images_list, list(
AURA_XENO_BLESSFURY = image('icons/mob/actions.dmi', icon_state = "Fury"),
AURA_XENO_BLESSWARDING = image('icons/mob/actions.dmi', icon_state = "Warding"),
AURA_XENO_BLESSFRENZY = image('icons/mob/actions.dmi', icon_state = "Frenzy"),
))
AURA_XENO_BLESSFURY = image('icons/Xeno/actions/puppeteer.dmi', icon_state = "Fury"),
AURA_XENO_BLESSWARDING = image('icons/Xeno/actions/puppeteer.dmi', icon_state = "Warding"),
AURA_XENO_BLESSFRENZY = image('icons/Xeno/actions/puppeteer.dmi', icon_state = "Frenzy"),
))

//xeno upgrade flags
///Message the hive when we buy this upgrade
#define UPGRADE_FLAG_MESSAGE_HIVE (1<<0)
#define UPGRADE_FLAG_ONETIME (1<<1)
#define UPGRADE_FLAG_USES_TACTICAL (1<<2)


GLOBAL_LIST_INIT(xeno_ai_spawnable, list(
/mob/living/carbon/xenomorph/beetle/ai,
/mob/living/carbon/xenomorph/mantis/ai,
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/advanced_pathfinding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ GLOBAL_LIST_EMPTY(goal_nodes)
return
src.creator = creator
RegisterSignal(creator, COMSIG_QDELETING, PROC_REF(clean_creator))
goal_image = image('icons/Xeno/actions.dmi', src, "minion_rendez_vous")
goal_image = image('icons/Xeno/actions/leader.dmi', src, "minion_rendez_vous")
goal_image.layer = HUD_PLANE
goal_image.alpha = 180
goal_image.pixel_y += 10
Expand Down
2 changes: 1 addition & 1 deletion code/datums/actions/ability_actions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/datum/action/ability
///If you are going to add an explanation for an ability. don't use stats, give a very brief explanation of how to use it.
desc = "This ability can not be found in codex."
action_icon = 'icons/Xeno/actions.dmi'
action_icon = 'icons/Xeno/actions/general.dmi'
///The cost of using this ability. Typically a plasma cost for xenos
var/ability_cost = 0
///bypass use limitations checked by can_use_action()
Expand Down
2 changes: 1 addition & 1 deletion code/datums/actions/bump_attack_toggle.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Toggle Bumpattacks
/datum/action/bump_attack_toggle
name = "Toggle Bump Attacks"
action_icon = 'icons/Xeno/actions.dmi'
action_icon = 'icons/Xeno/actions/general.dmi'
action_type = ACTION_TOGGLE
/// If we are toggled to attack whoever we bump onto, set by the bumping attack component when its toggled
var/attacking = FALSE
Expand Down
2 changes: 1 addition & 1 deletion code/datums/actions/observer_action.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

/datum/action/observer_action/show_hivestatus
name = "Show Hive status"
action_icon = 'icons/Xeno/actions.dmi'
action_icon = 'icons/Xeno/actions/queen.dmi'
action_icon_state = "watch_xeno"


Expand Down
6 changes: 3 additions & 3 deletions code/datums/actions/xeno_action.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
/datum/action/ability/xeno_action
///If you are going to add an explanation for an ability. don't use stats, give a very brief explanation of how to use it.
desc = "This ability can not be found in codex."
action_icon = 'icons/Xeno/actions.dmi'
action_icon = 'icons/Xeno/actions/general.dmi'

/datum/action/ability/xeno_action/New(Target)
. = ..()
var/mutable_appearance/empowered_appearence = mutable_appearance('icons/Xeno/actions.dmi', "borders_center", ACTION_LAYER_EMPOWERED, FLOAT_PLANE)
var/mutable_appearance/empowered_appearence = mutable_appearance('icons/Xeno/actions/general.dmi', "borders_center", ACTION_LAYER_EMPOWERED, FLOAT_PLANE)
visual_references[VREF_MUTABLE_EMPOWERED_FRAME] = empowered_appearence

/datum/action/ability/xeno_action/give_action(mob/living/L)
Expand Down Expand Up @@ -47,7 +47,7 @@
//activatable
/datum/action/ability/activable/xeno/New(Target)
. = ..()
var/mutable_appearance/empowered_appearence = mutable_appearance('icons/Xeno/actions.dmi', "borders_center", ACTION_LAYER_EMPOWERED, FLOAT_PLANE)
var/mutable_appearance/empowered_appearence = mutable_appearance('icons/Xeno/actions/general.dmi', "borders_center", ACTION_LAYER_EMPOWERED, FLOAT_PLANE)
visual_references[VREF_MUTABLE_EMPOWERED_FRAME] = empowered_appearence

/datum/action/ability/activable/xeno/give_action(mob/living/L)
Expand Down
1 change: 0 additions & 1 deletion code/datums/components/seethrough_mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@
/datum/action/ability/xeno_action/toggle_seethrough
name = "Toggle Seethrough"
desc = "Allows you to see behind your massive body and click through it."
action_icon = 'icons/Xeno/actions.dmi'
action_icon_state = "xenohide"
cooldown_duration = 1 SECONDS
use_state_flags = ABILITY_USE_LYING
Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/living/carbon/human/zombie.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/datum/action/rally_zombie
name = "Rally Zombies"
action_icon_state = "rally_minions"
action_icon = 'icons/Xeno/actions/leader.dmi'

/datum/action/rally_zombie/action_activate()
owner.emote("roar")
Expand Down
20 changes: 17 additions & 3 deletions code/modules/mob/living/carbon/xenomorph/abilities.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
/datum/action/ability/activable/xeno/plant_weeds
name = "Plant Weeds"
action_icon_state = "plant_weeds"
action_icon = 'icons/Xeno/actions/construction.dmi'
ability_cost = 75
desc = "Plant a weed node on your tile."
keybinding_signals = list(
Expand Down Expand Up @@ -134,7 +135,7 @@
if(auto_weeding)
if(!visual_references[VREF_IMAGE_ONTOP])
// below maptext , above selected frames
visual_references[VREF_IMAGE_ONTOP] = image('icons/Xeno/actions.dmi', icon_state = "repeating", layer = ACTION_LAYER_IMAGE_ONTOP)
visual_references[VREF_IMAGE_ONTOP] = image('icons/Xeno/actions/construction.dmi', icon_state = "repeating", layer = ACTION_LAYER_IMAGE_ONTOP)
button.add_overlay(visual_references[VREF_IMAGE_ONTOP])
else if(visual_references[VREF_IMAGE_ONTOP])
button.cut_overlay(visual_references[VREF_IMAGE_ONTOP])
Expand Down Expand Up @@ -176,6 +177,7 @@
/datum/action/ability/activable/xeno/secrete_resin
name = "Secrete Resin"
action_icon_state = RESIN_WALL
action_icon = 'icons/Xeno/actions/construction.dmi'
desc = "Builds whatever resin you selected"
target_flags = ABILITY_TURF_TARGET
ability_cost = 75
Expand Down Expand Up @@ -443,6 +445,7 @@
/datum/action/ability/activable/xeno/secrete_special_resin
name = "Secrete Special Resin"
action_icon_state = RESIN_WALL
action_icon = 'icons/Xeno/actions/construction.dmi'
desc = "Builds whatever special resin you selected"
target_flags = ABILITY_TURF_TARGET
ability_cost = 75
Expand Down Expand Up @@ -678,6 +681,7 @@
/datum/action/ability/activable/xeno/transfer_plasma
name = "Transfer Plasma"
action_icon_state = "transfer_plasma"
action_icon = 'icons/Xeno/actions/drone.dmi'
desc = "Give some of your plasma to a teammate."
var/plasma_transfer_amount = PLASMA_TRANSFER_AMOUNT
var/transfer_delay = 2 SECONDS
Expand Down Expand Up @@ -838,6 +842,8 @@
KEYBINDING_NORMAL = COMSIG_XENOABILITY_SPRAY_ACID,
)
use_state_flags = ABILITY_USE_BUCKLED
action_icon_state = "spray_acid"
action_icon = 'icons/Xeno/actions/boiler.dmi'

/datum/action/ability/activable/xeno/spray_acid/can_use_ability(atom/A, silent = FALSE, override_flags)
. = ..()
Expand Down Expand Up @@ -876,6 +882,7 @@
/datum/action/ability/activable/xeno/xeno_spit
name = "Xeno Spit"
action_icon_state = "shift_spit_neurotoxin"
action_icon = 'icons/Xeno/actions/spits.dmi'
desc = "Spit neurotoxin or acid at your target up to 7 tiles away."
keybinding_signals = list(
KEYBINDING_NORMAL = COMSIG_XENOABILITY_XENO_SPIT,
Expand Down Expand Up @@ -1046,17 +1053,18 @@
if(X.layer != XENO_HIDING_LAYER)
X.layer = XENO_HIDING_LAYER
to_chat(X, span_notice("We are now hiding."))
button.add_overlay(mutable_appearance('icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE))
button.add_overlay(mutable_appearance('icons/Xeno/actions/general.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE))
else
X.layer = MOB_LAYER
to_chat(X, span_notice("We have stopped hiding."))
button.cut_overlay(mutable_appearance('icons/Xeno/actions.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE))
button.cut_overlay(mutable_appearance('icons/Xeno/actions/general.dmi', "selected_purple_frame", ACTION_LAYER_ACTION_ICON_STATE, FLOAT_PLANE))


//Neurotox Sting
/datum/action/ability/activable/xeno/neurotox_sting
name = "Neurotoxin Sting"
action_icon_state = "neuro_sting"
action_icon = 'icons/Xeno/actions/sentinel.dmi'
desc = "A channeled melee attack that injects the target with neurotoxin over a few seconds, temporarily stunning them."
cooldown_duration = 12 SECONDS
ability_cost = 150
Expand Down Expand Up @@ -1113,6 +1121,7 @@
/datum/action/ability/activable/xeno/neurotox_sting/ozelomelyn
name = "Ozelomelyn Sting"
action_icon_state = "drone_sting"
action_icon = 'icons/Xeno/actions/shrike.dmi'
desc = "A channeled melee attack that injects the target with Ozelomelyn over a few seconds, purging chemicals and dealing minor toxin damage to a moderate cap while inside them."
cooldown_duration = 25 SECONDS
keybinding_signals = list(
Expand All @@ -1132,6 +1141,7 @@
/datum/action/ability/xeno_action/psychic_whisper
name = "Psychic Whisper"
action_icon_state = "psychic_whisper"
action_icon = 'icons/Xeno/actions/shrike.dmi'
keybinding_signals = list(
KEYBINDING_NORMAL = COMSIG_XENOABILITY_PSYCHIC_WHISPER,
)
Expand Down Expand Up @@ -1173,6 +1183,7 @@
/datum/action/ability/xeno_action/lay_egg
name = "Lay Egg"
action_icon_state = "lay_egg"
action_icon = 'icons/Xeno/actions/construction.dmi'
desc = "Create an egg that will grow a larval hugger after a short delay. Empty eggs can have huggers inserted into them."
ability_cost = 200
cooldown_duration = 12 SECONDS
Expand Down Expand Up @@ -1215,6 +1226,7 @@
/datum/action/ability/xeno_action/rally_hive
name = "Rally Hive"
action_icon_state = "rally_hive"
action_icon = 'icons/Xeno/actions/leader.dmi'
desc = "Rallies the hive to a congregate at a target location, along with an arrow pointer. Gives the Hive your current health status. 60 second cooldown."
ability_cost = 0
keybinding_signals = list(
Expand All @@ -1239,6 +1251,7 @@
/datum/action/ability/xeno_action/rally_minion
name = "Rally Minions"
action_icon_state = "minion_agressive"
action_icon = 'icons/Xeno/actions/leader.dmi'
desc = "Rallies the minions around you, asking them to follow you if they don't have a leader already. Rightclick to change minion behaviour."
ability_cost = 0
keybinding_signals = list(
Expand Down Expand Up @@ -1480,6 +1493,7 @@
/datum/action/ability/xeno_action/blessing_menu
name = "Mothers Blessings"
action_icon_state = "hivestore"
action_icon = 'icons/Xeno/actions/construction.dmi' // TODO: fix it
desc = "Ask the Queen Mother for blessings for your hive in exchange for psychic energy."
keybinding_signals = list(
KEYBINDING_NORMAL = COMSIG_XENOABILITY_BLESSINGSMENU,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
/datum/action/ability/xeno_action/baneling_explode
name = "Baneling Explode"
action_icon_state = "baneling_explode"
action_icon = 'icons/Xeno/actions/baneling.dmi'
desc = "Explode and spread dangerous toxins to hinder or kill your foes. You die."
keybinding_signals = list(
KEYBINDING_NORMAL = COMSIG_XENOABILITY_BANELING_EXPLODE,
Expand Down Expand Up @@ -94,8 +95,8 @@
// This is cursed, don't copy this code its the WRONG way to do this.
// TODO: generate this from GLOB.baneling_chem_type_list
var/static/list/reagent_images_list = list(
DEFILER_NEUROTOXIN = image('icons/Xeno/actions.dmi', icon_state = DEFILER_NEUROTOXIN),
BANELING_ACID = image('icons/Xeno/actions.dmi', icon_state = BANELING_ACID_ICON),
DEFILER_NEUROTOXIN = image('icons/Xeno/actions/defiler.dmi', icon_state = DEFILER_NEUROTOXIN),
BANELING_ACID = image('icons/Xeno/actions/boiler.dmi', icon_state = BANELING_ACID_ICON),
)
var/toxin_choice = show_radial_menu(owner, owner, reagent_images_list, radius = 48)
if(!toxin_choice)
Expand Down
Loading

0 comments on commit 53646c4

Please sign in to comment.