Skip to content

Commit

Permalink
panther
Browse files Browse the repository at this point in the history
  • Loading branch information
definitelynotspaghetti committed Dec 4, 2024
1 parent 83917a1 commit 45b2b17
Show file tree
Hide file tree
Showing 28 changed files with 45 additions and 616 deletions.
2 changes: 1 addition & 1 deletion code/__DEFINES/atom_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#define HEART_STATUS_HUD "heart_status_hud" // display if revivable, along with blood level
#define XENO_FIRE_HUD "xeno_fire_hud" // displays how many fire stacks a xeno has
#define XENO_BLESSING_HUD "xeno_blessing_hud" //indicates what blessings the xeno has
#define XENO_EVASION_HUD "xeno_extra_hud" // displays anything extra or additional such as runner's evasion duration
#define XENO_EVASION_HUD "xeno_extra_hud" // displays anything extra or additional such as evasion duration
#define XENO_BANISHED_HUD "xeno_banished_hud" // indicates that the xeno is banished

#define ADD_HUD_TO_COOLDOWN 20 //cooldown for being shown the images for any particular data hud
Expand Down
8 changes: 2 additions & 6 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -822,6 +822,7 @@
#define COMSIG_XENOABILITY_TOGGLE_STEALTH "xenoability_toggle_stealth"
#define COMSIG_XENOABILITY_HUNTER_BLINK "xenoability_hunter_blink"
#define COMSIG_XENOABILITY_MIRAGE "xenoability_mirage"
#define COMSIG_XENOABILITY_HUNTER_POUNCE "xenoability_hunter_pounce"

#define COMSIG_XENOABILITY_SCREECH "xenoability_screech"
#define COMSIG_XENOABILITY_PSYCHIC_WHISPER "xenoability_psychic_whisper"
Expand Down Expand Up @@ -850,12 +851,7 @@
#define COMSIG_XENOABILITY_IMMORTALITY "xenoability_immortality"
#define COMSIG_XENOABILITY_VAMPIRISM "xenoability_vampirism"

#define COMSIG_XENOABILITY_RUNNER_POUNCE "xenoability_runner_pounce"
#define COMSIG_XENOABILITY_HUNTER_POUNCE "xenoability_hunter_pounce"
#define COMSIG_XENOABILITY_TOGGLE_SAVAGE "xenoability_toggle_savage"
#define COMSIG_XENOABILITY_EVASION "xenoability_evasion"
#define COMSIG_XENOABILITY_AUTO_EVASION "xenoability_auto_evasion"
#define COMSIG_XENOABILITY_SNATCH "xenoability_snatch"


#define COMSIG_XENOABILITY_VENTCRAWL "xenoability_vent_crawl"

Expand Down
1 change: 0 additions & 1 deletion code/__DEFINES/is_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@
#define isxenodefender(A) (istype(A, /mob/living/carbon/xenomorph/defender))
#define isxenopraetorian(A) (istype(A, /mob/living/carbon/xenomorph/praetorian))
#define isxenoravager(A) (istype(A, /mob/living/carbon/xenomorph/ravager))
#define isxenorunner(A) (istype(A, /mob/living/carbon/xenomorph/runner))
#define isxenospitter(A) (istype(A, /mob/living/carbon/xenomorph/spitter))
#define isxenosentinel(A) (istype(A, /mob/living/carbon/xenomorph/sentinel))
#define isxenowarrior(A) (istype(A, /mob/living/carbon/xenomorph/warrior))
Expand Down
1 change: 0 additions & 1 deletion code/__DEFINES/movespeed_modification.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
#define MOVESPEED_ID_BULL_GORE_CHARGE "BULL_GORE_CHARGE"
#define MOVESPEED_ID_GORGER_CARNAGE "GORGER_CARNAGE"
#define MOVESPEED_ID_GORGER_REJUVENATE "GORGER_REJUVENATE"
#define MOVESPEED_ID_SNATCH "RUNNER_SNATCH"
#define MOVESPEED_ID_BLESSED_HIVE "BLESSED_HIVE" //#blessed.
#define MOVESPEED_ID_WARLOCK_CHANNELING "WARLOCK_CHANNELING"
#define MOVESPEED_ID_XENO_DREAD "DREADXENO"
Expand Down
1 change: 0 additions & 1 deletion code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ GLOBAL_LIST_INIT(playable_icons, list(
"ravager",
"requisition",
"researcher",
"runner",
"sentinel",
"spiderling",
"spitter",
Expand Down
5 changes: 1 addition & 4 deletions code/_globalvars/lists/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,6 @@ GLOBAL_LIST_INIT_TYPED(xeno_caste_datums, /list/datum/xeno_caste, init_xeno_cast
.[caste.get_base_caste_type()][caste.upgrade] = caste

GLOBAL_LIST_INIT(all_xeno_types, list(
/mob/living/carbon/xenomorph/runner,
/mob/living/carbon/xenomorph/runner/primordial,
/mob/living/carbon/xenomorph/drone,
/mob/living/carbon/xenomorph/drone/primordial,
/mob/living/carbon/xenomorph/sentinel,
Expand Down Expand Up @@ -125,7 +123,7 @@ GLOBAL_LIST_EMPTY_TYPED(mob_illusions_list, /mob/illusion)
GLOBAL_LIST_INIT(xeno_types_tier_one, list(
/datum/xeno_caste/defender,
/datum/xeno_caste/drone,
/datum/xeno_caste/runner,
/datum/xeno_caste/panther,
/datum/xeno_caste/sentinel,
))

Expand All @@ -134,7 +132,6 @@ GLOBAL_LIST_INIT(xeno_types_tier_two, list(
/datum/xeno_caste/carrier,
/datum/xeno_caste/hivelord,
/datum/xeno_caste/hunter,
/datum/xeno_caste/panther,
/datum/xeno_caste/spitter,
/datum/xeno_caste/warrior,
))
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/riding/riding_mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@
/datum/component/riding/creature/crusher/handle_specials()
. = ..()
set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(-10, -3), TEXT_SOUTH = list(-11, 6), TEXT_EAST = list(-21, 4), TEXT_WEST = list(4, 4)))
set_riding_offsets(/mob/living/carbon/xenomorph/runner, list(TEXT_NORTH = list(-16, 9), TEXT_SOUTH = list(-16, 17), TEXT_EAST = list(-21, 7), TEXT_WEST = list(-6, 7)))
set_riding_offsets(/mob/living/carbon/xenomorph/panther, list(TEXT_NORTH = list(-16, 9), TEXT_SOUTH = list(-16, 17), TEXT_EAST = list(-21, 7), TEXT_WEST = list(-6, 7)))
set_riding_offsets(/mob/living/carbon/xenomorph/larva, list(TEXT_NORTH = list(3, 6), TEXT_SOUTH = list(0, 16), TEXT_EAST = list(-2, 10), TEXT_WEST = list(0, 10)))
set_vehicle_dir_layer(SOUTH, ABOVE_MOB_LAYER)
set_vehicle_dir_layer(NORTH, ABOVE_LYING_MOB_LAYER)
Expand Down
33 changes: 0 additions & 33 deletions code/datums/keybinding/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -775,39 +775,6 @@
description = ""
keybind_signal = COMSIG_XENOABILITY_RAVAGE_SELECT

/datum/keybinding/xeno/pounce
name = "pounce"
full_name = "Runner: Pounce"
description = ""
keybind_signal = COMSIG_XENOABILITY_RUNNER_POUNCE
hotkey_keys = list("E")

/datum/keybinding/xeno/toggle_savage
name = "toggle_savage"
full_name = "Runner: Toggle Savage"
description = ""
keybind_signal = COMSIG_XENOABILITY_TOGGLE_SAVAGE

/datum/keybinding/xeno/evasion
name = "evasion"
full_name = "Runner: Evasion"
description = "Take evasive action, forcing non-friendly projectiles that would hit you to miss so long as you keep moving."
keybind_signal = COMSIG_XENOABILITY_EVASION
hotkey_keys = list("Z")

/datum/keybinding/xeno/auto_evasion
name = "auto_evasion"
full_name = "Runner: Toggle Auto Evasion"
description = "Toggles Auto Evasion on or off. While active, Auto Evasion will automatically use Evasion when you gain its cooldown reset bonus."
keybind_signal = COMSIG_XENOABILITY_AUTO_EVASION

/datum/keybinding/xeno/snatch
name = "snatch"
full_name = "Runner: Snatch"
description = "Take an item equipped by your target in your mouth, and carry it away."
keybind_signal = COMSIG_XENOABILITY_SNATCH
hotkey_keys = list("Q")

/datum/keybinding/xeno/toxic_slash
name = "toxic_slash"
full_name = "Sentinel: Toxic Slash"
Expand Down
4 changes: 2 additions & 2 deletions code/datums/wave_spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

/datum/wave_spawner/t1
spawn_types = list(
/mob/living/carbon/xenomorph/runner/ai,
/mob/living/carbon/xenomorph/panther/ai,
/mob/living/carbon/xenomorph/sentinel/ai,
/mob/living/carbon/xenomorph/defender/ai,
/mob/living/carbon/xenomorph/drone/ai,
Expand Down Expand Up @@ -60,7 +60,7 @@
/mob/living/carbon/xenomorph/mantis/ai,
/mob/living/carbon/xenomorph/scorpion/ai,
/mob/living/carbon/xenomorph/nymph/ai,
/mob/living/carbon/xenomorph/runner/ai,
/mob/living/carbon/xenomorph/panther/ai,
/mob/living/carbon/xenomorph/sentinel/ai,
/mob/living/carbon/xenomorph/defender/ai,
/mob/living/carbon/xenomorph/drone/ai,
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/effects/landmarks/landmarks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -562,8 +562,8 @@
return INITIALIZE_HINT_QDEL

/obj/effect/landmark/last_stand_waves
icon = 'icons/Xeno/castes/runner/basic.dmi'
icon_state = "Runner Walking"
icon = 'icons/Xeno/castes/panther/basic.dmi'
icon_state = "Panther Walking"
name = "last stand waves location"

/obj/effect/landmark/last_stand_waves/Initialize(mapload)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/structures/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@
return TRUE
if(M.mob_size <= MOB_SIZE_SMALL)
return TRUE
if(isxenorunner(M)) //alas, snowflake
if(isxenopanther(M)) //alas, snowflake
return TRUE
return FALSE

Expand Down
3 changes: 1 addition & 2 deletions code/modules/admin/panels/player_panel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -472,13 +472,12 @@
<a href='?src=[ref];transform=predalien_larva;mob=[REF(M)]'>Predalien Larva</a> |
<a href='?src=[ref];transform=facehugger;mob=[REF(M)]'>Facehugger</a>
<br> Alien Tier 1:
<a href='?src=[ref];transform=runner;mob=[REF(M)]'>Runner</a> |
<a href='?src=[ref];transform=panther;mob=[REF(M)]'>Panther</a> |
<a href='?src=[ref];transform=drone;mob=[REF(M)]'>Drone</a> |
<a href='?src=[ref];transform=sentinel;mob=[REF(M)]'>Sentinel</a> |
<a href='?src=[ref];transform=defender;mob=[REF(M)]'>Defender</a>
<br> Alien Tier 2:
<a href='?src=[ref];transform=hunter;mob=[REF(M)]'>Hunter</a> |
<a href='?src=[ref];transform=panther;mob=[REF(M)]'>Panther</a> |
<a href='?src=[ref];transform=bull;mob=[REF(M)]'>Bull</a> |
<a href='?src=[ref];transform=warrior;mob=[REF(M)]'>Warrior</a> |
<a href='?src=[ref];transform=spitter;mob=[REF(M)]'>Spitter</a> |
Expand Down
2 changes: 0 additions & 2 deletions code/modules/admin/topic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -402,8 +402,6 @@ Status: [status ? status : "Unknown"] | Damage: [health ? health : "None"]
newmob = M.change_mob_type(/mob/living/carbon/xenomorph/defender, location, null, delmob)
if("warrior")
newmob = M.change_mob_type(/mob/living/carbon/xenomorph/warrior, location, null, delmob)
if("runner")
newmob = M.change_mob_type(/mob/living/carbon/xenomorph/runner, location, null, delmob)
if("drone")
newmob = M.change_mob_type(/mob/living/carbon/xenomorph/drone, location, null, delmob)
if("sentinel")
Expand Down
4 changes: 2 additions & 2 deletions code/modules/ai/presets/xeno_presets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@
. = ..()
AddComponent(/datum/component/ai_controller, /datum/ai_behavior/xeno/suicidal)

/mob/living/carbon/xenomorph/runner/ai
/mob/living/carbon/xenomorph/panther/ai

/mob/living/carbon/xenomorph/runner/ai/Initialize(mapload)
/mob/living/carbon/xenomorph/panther/ai/Initialize(mapload)
. = ..()
AddComponent(/datum/component/ai_controller, /datum/ai_behavior/xeno)

Expand Down
6 changes: 3 additions & 3 deletions code/modules/ai/spawners/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
//////Generic xeno spawners
////////Tier ones

/obj/effect/ai_node/spawner/xeno/runnergang // RUNNNER GANG RUNNER GANG
spawntypes = /mob/living/carbon/xenomorph/runner/ai
/obj/effect/ai_node/spawner/xeno/panthergang
spawntypes = /mob/living/carbon/xenomorph/panther/ai
spawnamount = 4
spawndelay = 10 SECONDS
maxamount = 10
Expand All @@ -29,7 +29,7 @@
maxamount = 10

/obj/effect/ai_node/spawner/xeno/tierones
spawntypes = list(/mob/living/carbon/xenomorph/runner/ai, /mob/living/carbon/xenomorph/sentinel/ai, /mob/living/carbon/xenomorph/defender/ai, /mob/living/carbon/xenomorph/drone/ai)
spawntypes = list(/mob/living/carbon/xenomorph/panther/ai, /mob/living/carbon/xenomorph/sentinel/ai, /mob/living/carbon/xenomorph/defender/ai, /mob/living/carbon/xenomorph/drone/ai)
spawnamount = 4
spawndelay = 10 SECONDS
maxamount = 10
Expand Down
14 changes: 7 additions & 7 deletions code/modules/flufftext/Hallucination.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ GLOBAL_LIST_INIT(hallucination_list, list(
var/mob/living/carbon/target = null

/obj/effect/hallucination/simple
icon = 'icons/Xeno/castes/runner/basic.dmi'
icon_state = "Runner Walking"
icon = 'icons/Xeno/castes/panther/basic.dmi'
icon_state = "Panther Walking"
var/px = 0
var/py = 0
var/col_mod = null
Expand Down Expand Up @@ -124,14 +124,14 @@ GLOBAL_LIST_INIT(hallucination_list, list(
return ..()

/obj/effect/hallucination/simple/xeno
name = "Mature Runner"
name = "Mature Panther"
desc = "A small red alien that looks like it could run fairly quickly..."
icon = 'icons/Xeno/castes/runner/basic.dmi'
icon_state = "Runner Walking"
icon = 'icons/Xeno/castes/panther/basic.dmi'
icon_state = "Panther Walking"

/obj/effect/hallucination/simple/xeno/Initialize(mapload, mob/living/carbon/T)
. = ..()
name = "Mature Runner ([rand(100, 999)])"
name = "Mature Panther ([rand(100, 999)])"

/obj/effect/hallucination/simple/xeno/throw_impact(atom/hit_atom, speed)
. = ..()
Expand Down Expand Up @@ -313,7 +313,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
fakemob = target //ever been so lonely you had to haunt yourself?
if(fakemob)
sleep(rand(20, 50))
to_chat(target, span_deadsay("<b>DEAD: [fakemob.name]</b> says, \"[pick("rip","why did i just drop dead?","hey [target.real_name]","git gud","you too?","did we get the [pick("nuke", "blue disk", "red disk", "green disk", "yellow disk")]?","i[prob(50)?" fucking":""] hate [pick("runners", "queens", "shrikes", "xenos", "this", "myself", "admins", "you")]")]\""))
to_chat(target, span_deadsay("<b>DEAD: [fakemob.name]</b> says, \"[pick("rip","why did i just drop dead?","hey [target.real_name]","git gud","you too?","did we get the [pick("nuke", "blue disk", "red disk", "green disk", "yellow disk")]?","i[prob(50)?" fucking":""] hate [pick("panthers", "queens", "shrikes", "xenos", "this", "myself", "admins", "you")]")]\""))
sleep(rand(7 SECONDS, 9 SECONDS))
target.set_screwyhud(SCREWYHUD_NONE)
target.SetSleeping(0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
return "wounded_charging_[severity]"

/mob/living/carbon/xenomorph/crusher/buckle_mob(mob/living/buckling_mob, force = FALSE, check_loc = TRUE, lying_buckle = FALSE, hands_needed = 0, target_hands_needed = 0, silent)
if(!force)//crushers should be overriden by runners
if(!force)//crushers should be overriden by panthers
return FALSE
return ..()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@
keybinding_signals = list(
KEYBINDING_NORMAL = COMSIG_XENOABILITY_PANTHER_POUNCE,
)
cooldown_duration = 13 SECONDS
ability_cost = 20
var/pantherplasmaheal = 45
cooldown_duration = 8 SECONDS
ability_cost = 15
var/pantherplasmaheal = 35
var/pantherlifesteal = 25

/datum/action/ability/activable/xeno/pounce/panther/mob_hit(datum/source, mob/living/M)
. = ..()
var/mob/living/carbon/xenomorph/xenomorph_owner = owner
xenomorph_owner.plasma_stored += pantherplasmaheal
HEAL_XENO_DAMAGE(xenomorph_owner, pantherlifesteal, FALSE)

///////////////////////////////////
// ***************************************
Expand All @@ -24,8 +26,8 @@
name = "Tearing tail"
action_icon_state = "tearing_tail"
desc = "Hit all nearby enemies around you, poisoning them with selected toxin and healing you for each target hit."
ability_cost = 50
cooldown_duration = 15 SECONDS
ability_cost = 35
cooldown_duration = 10 SECONDS
var/tearing_tail_reagent
keybind_flags = ABILITY_KEYBIND_USE_ABILITY
keybinding_signals = list(
Expand All @@ -52,7 +54,7 @@
affecting = human_target.get_limb("chest") //Gotta have a torso?!
human_target.apply_damage(damage, BRUTE, affecting, MELEE)
xenomorph_owner.plasma_stored += 25
xenomorph_owner.heal_overall_damage(25, 25, updating_health = TRUE)
xenomorph_owner.heal_overall_damage(35, 35, updating_health = TRUE)
if(human_target.can_sting())
tearing_tail_reagent = xenomorph_owner.selected_reagent
var/reagent_amount = (xenomorph_owner.selected_reagent == /datum/reagent/toxin/xeno_ozelomelyn) ? PANTHER_TEARING_TAIL_REAGENT_AMOUNT * 0.5 : PANTHER_TEARING_TAIL_REAGENT_AMOUNT
Expand Down Expand Up @@ -83,7 +85,7 @@
action_icon_state = "adrenaline_jump"
desc = "Jump from some distance to target, knocking them down and pulling them to you, only works if you are at least from 3 to 8 meters away from the target, this ability sends Pounce on cooldown."
ability_cost = 15
cooldown_duration = 12 SECONDS
cooldown_duration = 8 SECONDS
keybinding_signals = list(
KEYBINDING_NORMAL = COMSIG_XENOABILITY_ADRENALINE_JUMP,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
upgrade_name = ""
caste_desc = "Run fast, hit hard, die young."
caste_type_path = /mob/living/carbon/xenomorph/panther
tier = XENO_TIER_TWO
tier = XENO_TIER_ONE
upgrade = XENO_UPGRADE_BASETYPE
wound_type = "panther" //used to match appropriate wound overlays

gib_anim = "gibbed-a-corpse-runner"
gib_flick = "gibbed-a-runner"

// *** Melee Attacks *** //
melee_damage = 23
melee_damage = 21
attack_delay = 6

// *** Speed *** //
Expand All @@ -28,7 +28,7 @@
max_health = 280

// *** Evolution *** //
evolution_threshold = 225
evolution_threshold = 100

// *** Flags *** //
caste_flags = CASTE_INNATE_PLASMA_REGEN|CASTE_PLASMADRAIN_IMMUNE|CASTE_EVOLUTION_ALLOWED
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,6 @@
if(prob(44.81))
new /obj/item/reagent_containers/food/drinks/pantherheart(loc)
gib()

/mob/living/carbon/xenomorph/panther/set_frenzy_aura(new_aura)
return
Loading

0 comments on commit 45b2b17

Please sign in to comment.