Skip to content

Commit

Permalink
TGS Test Merge (#8365)
Browse files Browse the repository at this point in the history
  • Loading branch information
cm13-github committed Feb 9, 2025
2 parents 95ef661 + ae843a4 commit 9ec48af
Show file tree
Hide file tree
Showing 10 changed files with 114 additions and 29 deletions.
11 changes: 7 additions & 4 deletions code/modules/cm_preds/yaut_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -828,14 +828,17 @@
icon_state = initial(icon_state) + "_active"
active = 1
update_icon()
addtimer(CALLBACK(src, PROC_REF(prime)), det_time)
addtimer(CALLBACK(src, PROC_REF(prime), user), det_time)

/obj/item/explosive/grenade/spawnergrenade/hellhound/prime()
/obj/item/explosive/grenade/spawnergrenade/hellhound/prime(mob/user)
if(spawner_type && deliveryamt)
// Make a quick flash
var/turf/T = get_turf(src)
var/turf/spawn_turf = get_turf(src)
if(ispath(spawner_type))
new spawner_type(T)
var/mob/living/carbon/xenomorph/hellhound/hound = new spawner_type(spawn_turf)
var/datum/behavior_delegate/hellhound_base/hound_owner = hound.behavior_delegate
hound_owner.pred_owner = user
notify_ghosts(header = "Hellhound", message = "A hellhound has been called in [get_area(user)] by [user.real_name] click play as hellhound to play as one.", extra_large = TRUE)
return

/obj/item/explosive/grenade/spawnergrenade/hellhound/check_eye(mob/user)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/datum/action/xeno_action/activable/pounce/gorge // charge them with your spikes

name = "Gorge"
action_icon_state = "headbite"
action_type = XENO_ACTION_CLICK
ability_primacy = XENO_PRIMARY_ACTION_1
xeno_cooldown = 5 SECONDS
plasma_cost = 0

freeze_self = FALSE
can_be_shield_blocked = FALSE
var/gorge_damage = 30



/datum/action/xeno_action/onclick/sense_owner // tells them where the pred is

name = "Find Owner"
action_icon_state = "mark_hosts"
action_type = XENO_ACTION_CLICK
xeno_cooldown = 10 SECONDS // relatively short since we want them to be close most of the time
plasma_cost = 0
xeno_cooldown = 1 SECONDS



Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/datum/action/xeno_action/activable/pounce/gorge/additional_effects(mob/living/target_living)


var/mob/living/carbon = target_living
var/mob/living/carbon/xenomorph/hellhound/hellhound_gorger = owner

hellhound_gorger.visible_message(SPAN_XENODANGER("[hellhound_gorger] gorges at [carbon] with it's spikes."))
carbon.apply_armoured_damage(gorge_damage, BRUTE)
playsound(hellhound_gorger, "giant_lizard_growl", 30)
playsound(carbon, "alien_bite", 30)




/datum/action/xeno_action/onclick/sense_owner/use_ability(atom/layer)
var/mob/living/carbon/xenomorph/hellhound/xeno = owner
var/datum/behavior_delegate/hellhound_base/hound_owner = xeno.behavior_delegate
var/direction = -3
var/dist = get_dist(xeno, hound_owner.pred_owner)

direction = Get_Compass_Dir(xeno, hound_owner.pred_owner)

if(!hound_owner.pred_owner)
to_chat(xeno, SPAN_XENOWARNING("You do not have an owner."))
return

if(hound_owner.pred_owner.z != xeno.z)
to_chat(xeno, SPAN_XENOWARNING("You do not sense your owner in this place."))
return
else
for(var/mob/living/carbon/viewers in orange(xeno, 5))
to_chat(viewers, SPAN_WARNING("[xeno] sniffs the ground in a hurry, what the hell.."))
to_chat(xeno, SPAN_XENOWARNING("You sniff the ground in a hurry to find where your master is."))
to_chat(xeno, SPAN_XENOWARNING("Your owner is [dist] meters to the [dir2text(direction)]"))

apply_cooldown()
..()
66 changes: 41 additions & 25 deletions code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@
plasma_max = XENO_NO_PLASMA
xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_4
armor_deflection = XENO_ARMOR_TIER_3
max_health = XENO_HEALTH_TIER_7
evasion = XENO_EVASION_LOW
max_health = XENO_HEALTH_TIER_6
evasion = XENO_EVASION_MEDIUM
speed = XENO_SPEED_HELLHOUND
attack_delay = -2
behavior_delegate_type = /datum/behavior_delegate/hellhound_base

minimum_evolve_time = 0
evolution_allowed = FALSE

tackle_min = 4
tackle_max = 5
Expand All @@ -34,32 +35,37 @@

caste_type = XENO_CASTE_HELLHOUND
name = XENO_CASTE_HELLHOUND
desc = "A disgusting beast from hell, it has four menacing spikes growing from its head."
desc = "A disgusting beast from hell, it's covered in menacing spikes.. and dear god that face.. only it's houndmaster could love."
icon = 'icons/mob/humans/onmob/hunter/hellhound.dmi'
icon_state = "Hellhound Walking"
icon_size = 32
pixel_x = -16
old_x = -16
layer = MOB_LAYER
plasma_types = list(PLASMA_CHITIN)
tier = 0
acid_blood_damage = 0
pull_speed = -0.5
viewsize = 9
show_age_prefix = FALSE
age = XENO_NO_AGE

speaking_key = "h"
speaking_noise = "hiss_talk"
langchat_color = "#9c7463"

slash_verb = "rend"
slashes_verb = "rends"
slash_verb = "bite"
slashes_verb = "rips"
slash_sound = 'sound/weapons/bite.ogg'

organ_value = 1500
mob_size = MOB_SIZE_XENO_SMALL

base_actions = list(
/datum/action/xeno_action/onclick/xeno_resting,
/datum/action/xeno_action/onclick/regurgitate,
/datum/action/xeno_action/onclick/xenohide,
/datum/action/xeno_action/activable/pounce/runner,
/datum/action/xeno_action/activable/pounce/gorge,
/datum/action/xeno_action/onclick/sense_owner,
/datum/action/xeno_action/onclick/toggle_long_range/runner,
/datum/action/xeno_action/onclick/tacmap,
)
Expand All @@ -79,20 +85,10 @@

set_languages(list(LANGUAGE_HELLHOUND, LANGUAGE_YAUTJA))

GLOB.living_xeno_list -= src
GLOB.xeno_mob_list -= src
SSmob.living_misc_mobs += src
GLOB.hellhound_list += src

/mob/living/carbon/xenomorph/hellhound/prepare_huds()
..()
var/image/health_holder = hud_list[HEALTH_HUD_XENO]
health_holder.pixel_x = -12
var/image/status_holder = hud_list[XENO_STATUS_HUD]
status_holder.pixel_x = -10
var/image/banished_holder = hud_list[XENO_BANISHED_HUD]
banished_holder.pixel_x = -12
banished_holder.pixel_y = -6

/mob/living/carbon/xenomorph/hellhound/initialize_pass_flags(datum/pass_flags_container/PF)
..()
Expand All @@ -102,13 +98,8 @@
/mob/living/carbon/xenomorph/hellhound/Login()
. = ..()
if(SSticker.mode) SSticker.mode.xenomorphs -= mind
to_chat(src, "<span style='font-weight: bold; color: red;'>Attention!! You are playing as a hellhound. You can get server banned if you are shitty so listen up!</span>")
to_chat(src, "<span style='color: red;'>You MUST listen to and obey the Predator's commands at all times. Die if they demand it. Not following them is unthinkable to a hellhound.</span>")
to_chat(src, "<span style='color: red;'>You are not here to go hog wild rambo. You're here to be part of something rare, a Predator hunt.</span>")
to_chat(src, "<span style='color: red;'>The Predator players must follow a strict code of role-play and you are expected to as well.</span>")
to_chat(src, "<span style='color: red;'>The Predators cannot understand your speech. They can only give you orders and expect you to follow them.</span>")
to_chat(src, "<span style='color: red;'>Hellhounds are fiercely protective of their masters and will never leave their side if under attack.</span>")
to_chat(src, "<span style='color: red;'>Note that ANY Predator can give you orders. If they conflict, follow the latest one. If they dislike your performance they can ask for another ghost and everyone will mock you. So do a good job!</span>")
to_chat(src, "<span style='font-weight: bold; color: red;'>Attention!! You are playing as a hellhound. This is a roleplay role which means you must maintain a high degree of roleplay or you risk getting job banned. LISTEN TO THE YAUTJA THAT CALLED YOU. Their order takes priority. If you dont, you will be ghosted and replaced and potentially punished if you are breaking the rules. If the yautja who called you dies, try to listen to other yautja or otherwise ask for one to give you a fight that will surely end in your demise. You are loyal to yautja above all else, do not act without their permission and do not disturb the round too much!</span>")


/mob/living/carbon/xenomorph/hellhound/death(cause, gibbed)
. = ..(cause, gibbed, "lets out a horrible roar as it collapses and stops moving...")
Expand All @@ -118,9 +109,12 @@
GLOB.hellhound_list -= src
SSmob.living_misc_mobs -= src


/mob/living/carbon/xenomorph/hellhound/get_organ_icon()
return "heart_t3"

/mob/living/carbon/xenomorph/hellhound/rejuvenate()
..()
GLOB.living_xeno_list -= src
GLOB.hellhound_list |= src
SSmob.living_misc_mobs |= src

Expand All @@ -134,10 +128,32 @@

/datum/behavior_delegate/hellhound_base
name = "Base Hellhound Behavior Delegate"
var/mob/pred_owner = ""

/datum/behavior_delegate/hellhound_base/melee_attack_additional_effects_self()
..()

var/datum/action/xeno_action/onclick/xenohide/hide = get_action(bound_xeno, /datum/action/xeno_action/onclick/xenohide)
if(hide)
hide.post_attack()


/datum/behavior_delegate/hellhound_base/append_to_stat()
if(!pred_owner)
. += "You have no owner, try to listen to any other yautja..."
else
. += "Your owner is [pred_owner.real_name]"



/mob/living/carbon/xenomorph/hellhound/get_examine_text(mob/user)
. = ..()
var/datum/behavior_delegate/hellhound_base/owner = behavior_delegate
if(ishuman_strict(user))
. += "\improper You can barely make out the symbols but it reads out ⵍⴻⴱⵔⵓ" // those who know
else if(isyautja(user))
if(!owner.pred_owner)
. += "It's not owned by anyone."
return
. += "It's owner is [owner.pred_owner.real_name]!"

1 change: 1 addition & 0 deletions code/modules/mob/living/carbon/xenomorph/hive_status.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1156,6 +1156,7 @@
hivenumber = XENO_HIVE_YAUTJA
internal_faction = FACTION_YAUTJA

ui_color = "#135029"
dynamic_evolution = FALSE
allow_no_queen_actions = TRUE
allow_no_queen_evo = TRUE
Expand Down
2 changes: 2 additions & 0 deletions colonialmarines.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2110,6 +2110,8 @@
#include "code\modules\mob\living\carbon\xenomorph\abilities\defender\defender_powers.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\facehugger\facehugger_abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\facehugger\facehugger_powers.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\hellhound\hellhound_abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\hellhound\hellhound_powers.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\hivelord\hivelord_abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\hivelord\hivelord_powers.dm"
#include "code\modules\mob\living\carbon\xenomorph\abilities\king\king_abilities.dm"
Expand Down
Binary file modified icons/mob/humans/onmob/hunter/hellhound.dmi
Binary file not shown.
Binary file not shown.
Binary file added icons/mob/xenos/hellhound_wounds.dmi
Binary file not shown.
Binary file modified icons/mob/xenos/wounds.dmi
Binary file not shown.

0 comments on commit 9ec48af

Please sign in to comment.