-
Notifications
You must be signed in to change notification settings - Fork 840
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tier 4 Caste: Dragon #17230
base: master
Are you sure you want to change the base?
Tier 4 Caste: Dragon #17230
Conversation
REJOICE! The ultimate Xeno who reaches over Weeds and reigns over the round and map. Her name is Dragon! We are now reaching the last page of TGMC history itself! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass
#define COMSIG_HUMAN_BRUTE_DAMAGE "human_brute_damage" // (amount, amount_mod) | ||
#define COMSIG_HUMAN_BURN_DAMAGE "human_burn_damage" // (amount, amount_mod) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
say where it gets sent too
#define COMSIG_HUMAN_BRUTE_DAMAGE "human_brute_damage" // (amount, amount_mod) | |
#define COMSIG_HUMAN_BURN_DAMAGE "human_burn_damage" // (amount, amount_mod) | |
#define COMSIG_HUMAN_BRUTE_DAMAGE "human_brute_damage" // (amount, amount_mod) | |
#define COMSIG_HUMAN_BURN_DAMAGE "human_burn_damage" // (amount, amount_mod) |
code/datums/keybinding/xeno.dm
Outdated
/datum/keybinding/xeno/backhand | ||
name = "Backhand" | ||
full_name = "Dragon: Backhand" | ||
description = "After a windup, smack a group of marines in front of you away." | ||
keybind_signal = COMSIG_XENOABILITY_BACKHAND | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no defaults?
qdel(src) | ||
return | ||
debuff_owner = new_owner | ||
. = ..() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
. = ..() | |
return ..() |
debuff_owner = new_owner | ||
. = ..() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
debuff_owner = new_owner | |
. = ..() | |
debuff_owner = new_owner | |
return ..() |
SEND_SIGNAL(src, COMSIG_HUMAN_BURN_DAMAGE, amount, amount_mod) | ||
for(var/i in amount_mod) | ||
amount -= i |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we just use a byond pointer here (&amount)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
addtimer(CALLBACK(floor_plane, TYPE_PROC_REF(/datum, remove_filter), "dragon_unleash"), resolve_time) | ||
addtimer(CALLBACK(world_plane, TYPE_PROC_REF(/datum, remove_filter), "dragon_unleash"), resolve_time) | ||
return | ||
addtimer(CALLBACK(src, PROC_REF(end_roar_effects_for), affected_living), 0.1 SECONDS) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is this looping?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is basically checking every tick if roar's effects should end.
|
||
/// Grants 33% additional slash/ability damage and a boost in movement speed that will wear off in 30 seconds. | ||
/datum/action/ability/activable/xeno/unleash/proc/apply_buffs() | ||
xeno_owner.xeno_melee_damage_modifier += 1/3 //This is 33% increase of all slash and ability damage. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not just 0.3
/datum/action/ability/activable/xeno/unleash/proc/start_withdrawal() | ||
if(!is_active()) | ||
return | ||
xeno_owner.visible_message(span_danger("\The [xeno_owner] looks tired."), span_danger("We feel tired."), null, 5) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
visuals?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe like particles or something
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Deleted primo, so no need for that anymore.
else if(isarmoredvehicle(impacted_obj)) | ||
handle_vehicle_effects(impacted_obj, damage / 3, should_stun = can_stun) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see comments about hitboxes yet again
also maybe standardize this into a proccall since you seem to be doing the same thing so often
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you also seperately check hotboxes so idk why have this actually???
animate(impacted_living, pixel_z = impacted_living.pixel_z + 8, layer = max(MOB_JUMP_LAYER, impacted_living.layer), time = 0.25 SECONDS, easing = CIRCULAR_EASING|EASE_OUT, flags = ANIMATION_END_NOW|ANIMATION_PARALLEL) | ||
animate(pixel_z = impacted_living.pixel_z - 8, layer = impacted_living.layer, time = 0.25 SECONDS, easing = CIRCULAR_EASING|EASE_IN) | ||
impacted_living.animation_spin(0.5 SECONDS, 1, impacted_living.dir == WEST ? FALSE : TRUE, anim_flags = ANIMATION_PARALLEL) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why touch layer
"Mechas take 3x damage while APCs takes 1/3x damage for each tile." Wha.... why? Why mechs recieving more damage than vehicles? |
Because vehicles are multitile and will take loads of damage from AoE attacks, and mechs are single tile but a bit tankier than a marine so mechs take a bit more damage. |
Crushers can instakill mechs by the way (because obviously it's genius to give Crushers 400 fucking damage) Mechs can get shuffled by the way Mechs can get tailflung by the w- |
About The Pull Request
Generally follows https://hackmd.io/@wlLEbadtQoCyE4iytTkonw/S10wubC1A.
Sprites are a tad shit and code is kind of slop, but it's ready for review (probably)!
A new tier 4 caste, Dragon.

It looks like this:
They require 13 xenos to exist in order to evolve to it and are last in line to be hive ruler.
They have armor of: 75 melee, 75 bullet, 75 energy, 60 bomb, 75 bio, 200 fire (immunity), and 75 acid.
They take 40% less sunder.
They do not emit any pheromones.
They do not regenerate plasma naturally.
They get a special-looking slash effect.
They have 850 health, 500 plasma (but start at 0 plasma), and move at -0.5 speed.
They are immune to stuns, staggers, slows, and knockbacks of any kind.
They cannot be affected by specific xeno abilities that heal or negate damage:
Plasma is colored yellow and may be referred as "armor" because that's what it is now.
Any damage that they take, after adjusted for armor, is reduced by half as long they have plasma. Each point of damage takes away 5 plasma until they run out.
They have various abilities which they cannot be shuffled nor perform slash attacks during any windups:
Backhand
If there is a grabbed human, windup is 3s and will do something else:
Fly
Tailswipe
Dragon Breath
If there is a grabbed human, windup is 3s and will do something else:
Wind current
Grab
Psychic Channel
Unleash (Primordial)
Other changes:
CASTE_CAN_BE_QUEEN_HEALED has been renamed to CASTE_CAN_BE_HEALED_BY_OTHERS.
Having CASTE_CAN_BE_HEALED_BY_OTHERS allows xenos to be affected by abilities that heal or negate damage.
Queen now gets CASTE_CAN_BE_HEALED_BY_OTHERS (for obvious reason).
Ammo can now set the icon, alpha, and size of projectiles created from it.
Rearranged, commented, and changed some overlapping caste_flags.
Why It's Good For The Game
Dragon. :)
Changelog
🆑
add: A new tier 4 caste named Dragon. It is a combat-oriented caste.
add: A bunch of Dragon-related abilities.
add: New status effect: Plague. Reduces all brute and burn healing by 50%.
add: New status effect: Electrified. Causes moving to deal burn damage. Can be resisted to remove it.
soundadd: Various sounds involving dragon and its ability.
imageadd: Various sprites involving dragon and its abilities.
imageadd: Attack slash effect unique to Dragon.
code: Ammo can now set the icon, alpha, and size of projectiles created from it.
code: Humans taking brute/burn damage now send a signal for either.
code: Xeno caste_flags that gives full immunity to certain status effects & King's Psychic Summon.
/:cl: