Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 26 additions & 3 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@
/// If the mob won't drop items held in face slot when downed
#define TRAIT_IRON_TEETH "t_iron_teeth"

// -- ability traits --
// -- general ability traits --
/// Xenos with this trait cannot have plasma transferred to them
#define TRAIT_ABILITY_NO_PLASMA_TRANSFER "t_ability_no_plasma_transfer"
/// Shows that the xeno queen is on ovi
Expand All @@ -267,9 +267,32 @@
#define TRAIT_ABILITY_BURROWED "t_ability_burrowed"
/// Xenos with this trait can toggle long sight while resting.
#define TRAIT_ABILITY_SIGHT_IGNORE_REST "t_ability_sight_ignore_rest"
/// Used by shielder to check stance.
/// Xenos with this trait cannot spit multiple times.
#define TRAIT_ABILITY_SPITTING "t_ability_charge_spitting"
/// Used by xenos that are mid-flight like pounce or jump.
#define TRAIT_ABILITY_AIRBONE "t_ability_airbone"


// -- specific ability traits --
#define TRAIT_ABILITY_ASSASINATE "t_ability_assasinate"
#define TRAIT_ABILITY_INVIS "t_ability_invis"
#define TRAIT_ABILITY_LUNGE "t_ability_lunge"
#define TRAIT_ABILITY_BURROW_DIGGING "t_ability_burrow_digging"
#define TRAIT_ABILITY_BURROW_UNDERGROUND "t_ability_burrow_underground"
#define TRAIT_ABILITY_CREST "t_ability_burrower_crest"
#define TRAIT_ABILITY_FORTIFY "t_ability_fortify"
#define TRAIT_ABILITY_POUNCE_CHARGE "t_ability_pounce_charge"
#define TRAIT_ABILITY_PRE_EMPOWER "t_ability_pre_empower"
#define TRAIT_ABILITY_EMPOWER "t_ability_empower"
#define TRAIT_ABILITY_CATALYZE_EMPOWER "t_ability_catalyze_empower"
#define TRAIT_ABILITY_CLEAVE_ROOT "t_ability_cleave_root"
#define TRAIT_ABILITY_CLEAVE_BUFFED "t_ability_cleave_buffed"
#define TRAIT_ABILITY_PRE_DASH "t_ability_pre_dash"
#define TRAIT_ABILITY_DODGE "t_ability_dodge"
#define TRAIT_ABILITY_RED_TAG "t_ability_red_tag"
#define TRAIT_ABILITY_YELLOW_TAG "t_ability_yellow_tag"
#define TRAIT_ABILITY_SHED_SPIKES "t_ability_shed_spikes"
#define TRAIT_ABILITY_ENCLOSED_PLATES "t_ability_enclosed_plates"
/// Used by shielder for reflective plates.
#define TRAIT_ABILITY_REFLECTIVE_PLATES "t_ability_reflective_plates"


Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -799,3 +799,6 @@
#define FACEHUGGER_JUMP_RANGE 1 // dont really want them to hug you immediately as you break down a corner or a door when a carrier stacks them on a tile
#define EGG_JUMP_RANGE 2 // This is for egg huggers, they are supposed to be scary and leap at people yes.
#define CARRIER_HUGGER_THROW_RANGE 6

#define XENO_ACTION_CHECK(X) if(!X.check_state() || !action_cooldown_check() || !check_plasma_owner(src.plasma_cost)) return
#define XENO_ACTION_CHECK_USE_PLASMA(X) if(!X.check_state() || !action_cooldown_check() || !check_and_use_plasma_owner(src.plasma_cost)) return
Comment thread
Venuska1117 marked this conversation as resolved.
Outdated
1 change: 1 addition & 0 deletions code/_onclick/hud/screen_objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
if(!new_maptext)
return
maptext_overlay = image(null, null, null, layer + 0.1)
maptext_overlay.appearance_flags |= RESET_COLOR
maptext_overlay.maptext = new_maptext
if(new_maptext_x)
maptext_overlay.maptext_x = new_maptext_x
Expand Down
8 changes: 0 additions & 8 deletions code/game/turfs/walls/wall_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1131,14 +1131,6 @@
opacity = FALSE
alpha = 180

/turf/closed/wall/resin/membrane/can_bombard(mob/living/carbon/xenomorph/X)
if(!istype(X))
return FALSE

var/datum/hive_status/hive = GLOB.hive_datum[hivenumber]

return hive.is_ally(X)

/turf/closed/wall/resin/membrane/initialize_pass_flags(datum/pass_flags_container/PF)
..()
if (PF)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/mob/living/carbon/xenomorph/Evolution.dm
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys)
to_chat(src, SPAN_WARNING("We must be at full health to evolve."))
return FALSE

if(agility || fortify || crest_defense || stealth || HAS_TRAIT(src, TRAIT_ABILITY_ENCLOSED_PLATES) || HAS_TRAIT(src, TRAIT_ABILITY_REFLECTIVE_PLATES))
if(HAS_TRAIT(src, TRAIT_ABILITY_FORTIFY) || HAS_TRAIT(src, TRAIT_ABILITY_CREST) || HAS_TRAIT(src, TRAIT_ABILITY_INVIS) || HAS_TRAIT(src, TRAIT_ABILITY_ENCLOSED_PLATES) || HAS_TRAIT(src, TRAIT_ABILITY_REFLECTIVE_PLATES))
to_chat(src, SPAN_WARNING("We cannot evolve while in this stance."))
return FALSE

Expand Down Expand Up @@ -324,7 +324,7 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys)
if(tier == 0 || tier == 4)
to_chat(src, SPAN_XENOWARNING("We can't transmute."))
return
if(agility || fortify || crest_defense || stealth)
if(HAS_TRAIT(src, TRAIT_ABILITY_FORTIFY) || HAS_TRAIT(src, TRAIT_ABILITY_CREST) || HAS_TRAIT(src, TRAIT_ABILITY_INVIS) || HAS_TRAIT(src, TRAIT_ABILITY_ENCLOSED_PLATES) || HAS_TRAIT(src, TRAIT_ABILITY_REFLECTIVE_PLATES))
to_chat(src, SPAN_XENOWARNING("We can't transmute while in this stance."))
return
if(lock_evolve)
Expand Down
5 changes: 4 additions & 1 deletion code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
if(..())
return TRUE

if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED))
return

switch(M.a_intent)

if(INTENT_HELP)
Expand Down Expand Up @@ -109,7 +112,7 @@
//Hot hot Aliens on Aliens action.
//Actually just used for eating people.
/mob/living/carbon/xenomorph/attack_alien(mob/living/carbon/xenomorph/xeno)
if(xeno.fortify || HAS_TRAIT(xeno, TRAIT_ABILITY_BURROWED) || HAS_TRAIT(xeno, TRAIT_ABILITY_REFLECTIVE_PLATES))
if(HAS_TRAIT(xeno, TRAIT_ABILITY_FORTIFY) || HAS_TRAIT(xeno, TRAIT_ABILITY_BURROWED))
return XENO_NO_DELAY_ACTION

if(HAS_TRAIT(src, TRAIT_ABILITY_BURROWED))
Expand Down
3 changes: 0 additions & 3 deletions code/modules/mob/living/carbon/xenomorph/XenoProcs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -275,9 +275,6 @@
if(frenzy_aura)
. -= (frenzy_aura * 0.05)

if(agility)
. += caste.agility_speed_increase

var/obj/effect/alien/weeds/W = locate(/obj/effect/alien/weeds) in loc
if (W)
if (W.linked_hive.hivenumber == hivenumber)
Expand Down
32 changes: 16 additions & 16 deletions code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -294,13 +294,6 @@
//
//////////////////////////////////////////////////////////////////

var/tunnel = FALSE
/// for check on lurker invisibility
var/stealth = FALSE
var/fortify = FALSE
var/crest_defense = FALSE
/// 0/FALSE - upright, 1/TRUE - all fours
var/agility = FALSE
/// For drones/hivelords. Extends the maximum build range they have
var/extra_build_dist = 0
/// tiles from self you can plant eggs.
Expand Down Expand Up @@ -365,14 +358,6 @@
// Vars that should be deleted
//
//////////////////////////////////////////////////////////////////
var/burrow_timer = 200
var/tunnel_timer = 20

//Burrower Vars
var/used_tremor = 0
// Burrowers
var/used_burrow = 0
var/used_tunnel = 0

//Taken from update_icon for all xeno's
var/list/overlays_standing[X_TOTAL_LAYERS]
Expand Down Expand Up @@ -830,7 +815,7 @@
return TRUE
playsound(puller.loc, 'sound/weapons/pierce.ogg', 25, 1)
puller.visible_message(SPAN_WARNING("[puller] tried to pull [src] but instead gets a tail swipe to the head!"))
if(stealth)
if(HAS_TRAIT(src, TRAIT_ABILITY_INVIS))
puller.apply_effect(caste.tacklestrength_min, WEAKEN)
return FALSE
puller.apply_effect(rand(caste.tacklestrength_min,caste.tacklestrength_max), WEAKEN)
Expand All @@ -857,7 +842,22 @@
pulledby.stop_pulling()
. = 1

/mob/living/carbon/xenomorph/proc/rename_tunnel(obj/structure/tunnel/tunnel_target in oview(1))
set name = "Rename Tunnel"
set desc = "Rename the tunnel."
set category = null

if(!istype(tunnel_target))
return

var/new_name = strip_html(input("Change the description of the tunnel:", "Tunnel Description") as text|null)
new_name = replace_non_alphanumeric_plus(new_name)
if(new_name)
new_name = "[new_name] ([get_area_name(tunnel_target)])"
log_admin("[key_name(src)] has renamed the tunnel \"[tunnel_target.tunnel_desc]\" as \"[new_name]\".")
msg_admin_niche("[src]/([key_name(src)]) has renamed the tunnel \"[tunnel_target.tunnel_desc]\" as \"[new_name]\".")
tunnel_target.tunnel_desc = "[new_name]"
return

/mob/living/carbon/xenomorph/prepare_huds()
..()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,6 @@
handles_movement = FALSE
movement_slowdown = XENO_SPEED_SLOWMOD_ZOOM

/datum/action/xeno_action/activable/acid_lance
name = "Acid Lance"
action_icon_state = "acid_lance"
plasma_cost = 50
macro_path = /datum/action/xeno_action/verb/verb_acid_lance
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_2
xeno_cooldown = 19 SECONDS

// Config
var/stack_time = 10
var/base_range = 6
var/range_per_stack = 1
var/base_damage = 35
var/damage_per_stack = 15
var/movespeed_per_stack = 1.25

var/time_after_max_before_end = 25

// State
var/stacks = 0
var/max_stacks = 5
var/movespeed_nerf_applied = 0
var/activated_once = FALSE

/datum/action/xeno_action/onclick/shift_spits/boiler
name = "Toggle Gas Type"
action_icon_state = "shift_spit_acid_glob"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,3 @@
/datum/action/xeno_action/verb/verb_bombard()
set category = "Alien"
set name = "Bombard"
set hidden = TRUE
var/action_name = "Bombard"
handle_xeno_macro(src, action_name)


/datum/action/xeno_action/verb/verb_toggle_gas_type()
set category = "Alien"
set name = "Bombard"
Expand All @@ -15,14 +7,6 @@

handle_xeno_macro(src, action_name)

/datum/action/xeno_action/verb/verb_acid_lance()
set category = "Alien"
set name = "Acid Lance"
set hidden = TRUE
var/action_name = "Acid Lance"

handle_xeno_macro(src, action_name)

/datum/action/xeno_action/verb/verb_dump_acid()
set category = "Alien"
set name = "Dump Acid"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,12 @@
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_3

/datum/action/xeno_action/activable/burrow/use_ability(atom/A)
var/mob/living/carbon/xenomorph/xenomorph = owner
var/used_digging = FALSE
var/digging_timer = 2 SECONDS
var/burrow_timer = 20 SECONDS

if(!action_cooldown_check())
return

if(HAS_TRAIT(xenomorph, TRAIT_ABILITY_BURROWED))
xenomorph.tunnel(get_turf(A))
else
xenomorph.burrow()
return ..()
var/burrow_cooldown = 2 SECONDS
var/digging_cooldown = 7 SECONDS

/datum/action/xeno_action/onclick/tremor
name = "Tremor (100)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_3

/datum/action/xeno_action/activable/throw_hugger/action_cooldown_check()
if(owner)
var/mob/living/carbon/xenomorph/carrier/alien = owner
return world.time >= alien.hugger_throw_cooldown // i think
return TRUE //When we first add the ability we still do this check, but owner is null, so a workaround

/datum/action/xeno_action/activable/retrieve_egg
name = "Retrieve Egg"
action_icon_state = "retrieve_egg"
Expand Down
Loading