Skip to content
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

Xenomorph Endgame #6334

Open
wants to merge 181 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
181 commits
Select commit Hold shift + click to select a range
5496b7b
destroyer framework, initial 3 abilities
Birdtalon Jan 25, 2024
9a31ae2
targetting template
Birdtalon Jan 27, 2024
56f63c3
more ability progress, charge ability,
Birdtalon Jan 27, 2024
46fd290
var fix
Birdtalon Jan 29, 2024
dbbd1d1
progress on charge ability
Birdtalon Jan 30, 2024
5f6c491
fire immunity
Birdtalon Jan 30, 2024
f0a5f0f
initial hivebuff framework
Birdtalon Jan 30, 2024
8af885a
further hivebuff implementation
Birdtalon Jan 31, 2024
bba7914
further hivebuff implementation through pylons
Birdtalon Jan 31, 2024
947ad66
further fleshing out of hive buff framework, pylon implementation, qd…
Birdtalon Feb 2, 2024
ffac0af
some further checks
Birdtalon Feb 2, 2024
0f8f863
more ability work
Birdtalon Feb 3, 2024
3e3a4da
more ability checks
Birdtalon Feb 3, 2024
b616df1
adds shield to icons
Birdtalon Feb 3, 2024
c6fc7b7
destroyer bulwark ability, new sounds, new shield
Birdtalon Feb 4, 2024
28be16f
adds some guards to abilities
Birdtalon Feb 4, 2024
eb1bce8
tweaks to checks
Birdtalon Feb 4, 2024
9f23def
few more checks, ability pathing, damage to cades and windows
Birdtalon Feb 7, 2024
57ee5bd
more buff implementation
Birdtalon Feb 8, 2024
037f822
handling for multiple hivebuffs
Birdtalon Feb 8, 2024
2d6946a
more hivebuff changes
Birdtalon Feb 8, 2024
2ba77d0
more radial UI stuff
Birdtalon Feb 10, 2024
1e07e45
first bugfixes
Birdtalon Feb 10, 2024
c84d099
list changes
Birdtalon Feb 14, 2024
b9aa823
further changes
Birdtalon Feb 20, 2024
5e37e91
removes unused signal
Birdtalon Mar 6, 2024
894e7f4
fixes from linters
Birdtalon Mar 6, 2024
0e343fe
removes ammo type from shield
Birdtalon Mar 6, 2024
339519d
removes some debug stuff, fixes some comments.
Birdtalon Mar 6, 2024
b6b3605
more fixes and notes
Birdtalon Mar 6, 2024
05307b7
get_line refactor change
Birdtalon Mar 6, 2024
835df68
some fixes on destroy ability and bump code
Birdtalon Mar 13, 2024
e954051
ability cleanup, checks, logs, cause data
Birdtalon Mar 19, 2024
e37061a
hivebuff changes and destroyer icon change
Birdtalon Mar 19, 2024
a21a343
missing underscore
Birdtalon Mar 19, 2024
e80116b
rawr
Birdtalon Mar 19, 2024
2dccfc4
new sprites
Birdtalon May 20, 2024
4edfa8a
revive
Git-Nivrak May 25, 2024
cd382df
stuff
Git-Nivrak May 25, 2024
87176f7
Linter
Git-Nivrak May 26, 2024
fd77a08
more fix
Git-Nivrak May 26, 2024
07508cd
hatchery sprites fixes
Git-Nivrak May 26, 2024
9bd8e69
a
Git-Nivrak Jun 2, 2024
4dfd7da
Update XenoStructures.dm
Git-Nivrak Jun 2, 2024
02e554d
Apply suggestions from code review
Git-Nivrak Jun 4, 2024
9c265b2
Update code/modules/cm_aliens/hivebuffs/hivebuff.dm
Git-Nivrak Jun 4, 2024
705c519
Update code/modules/cm_aliens/hivebuffs/hivebuff.dm
Git-Nivrak Jun 4, 2024
bebc2f9
Update XenoStructures.dm
Git-Nivrak Jun 6, 2024
39a8dfb
fix
Git-Nivrak Jun 6, 2024
b269b16
Update destroyer_powers.dm
Git-Nivrak Jun 6, 2024
31ee48d
Update XenoStructures.dm
Git-Nivrak Jun 6, 2024
bf2ff51
Update XenoStructures.dm
Git-Nivrak Jun 6, 2024
3e1c4c4
test
Git-Nivrak Jun 6, 2024
68b08fa
test2
Git-Nivrak Jun 6, 2024
63367b9
test 3
Git-Nivrak Jun 6, 2024
89c794c
Update XenoStructures.dm
Git-Nivrak Jun 6, 2024
e7baabb
test 5
Git-Nivrak Jun 6, 2024
a895a96
this is the one
Git-Nivrak Jun 6, 2024
58bdf4e
removes redundant stuff
Git-Nivrak Jun 6, 2024
069776c
asdasd
Git-Nivrak Jun 6, 2024
3a95934
Update Queen.dm
Git-Nivrak Jun 6, 2024
142611f
hive status royal resin
Git-Nivrak Jun 6, 2024
1b1eb08
lol
Git-Nivrak Jun 6, 2024
e9d54d7
ghost announce
Git-Nivrak Jun 6, 2024
6247798
double purchase prevention
Git-Nivrak Jun 6, 2024
32fb20b
fixes pylon messaging
zzzmike Jun 6, 2024
9023b23
hive status fix
Git-Nivrak Jun 6, 2024
0ba6370
Update pylon_core.dm
Git-Nivrak Jun 6, 2024
0644709
Update hivebuff.dm
Git-Nivrak Jun 6, 2024
55145f4
messaging fix#2
zzzmike Jun 6, 2024
9bc0bf7
fixes
Git-Nivrak Jun 6, 2024
3c2e04c
Update Destroyer.dm
Git-Nivrak Jun 6, 2024
34f35ba
Update HiveStatus.jsx
Git-Nivrak Jun 6, 2024
b3ceae4
Update code/modules/mob/living/carbon/xenomorph/castes/Destroyer.dm
Git-Nivrak Jun 6, 2024
82514d4
Update Destroyer.dm
Git-Nivrak Jun 6, 2024
8a9452b
new doom effect
Git-Nivrak Jun 6, 2024
a29df75
Changes
Git-Nivrak Jun 6, 2024
e663245
Merge pull request #1 from zzzmike/patch-5
Git-Nivrak Jun 7, 2024
e2461c5
review
Git-Nivrak Jun 7, 2024
95df93b
review 2
Git-Nivrak Jun 7, 2024
18c8b8d
Update hivebuff.dm
Git-Nivrak Jun 7, 2024
f671149
Update hivebuff.dm
Git-Nivrak Jun 7, 2024
1a12aeb
Update hivebuff.dm
Git-Nivrak Jun 7, 2024
01a54ed
Update hivebuff.dm
Git-Nivrak Jun 7, 2024
02c377f
Update pylon_core.dm
Git-Nivrak Jun 7, 2024
8eee574
banish check
Git-Nivrak Jun 7, 2024
a67d643
fix to the fix of the fix of the fix
Git-Nivrak Jun 7, 2024
c711ecc
Update XenoStructures.dm
Git-Nivrak Jun 7, 2024
7d0b485
null safety first
Git-Nivrak Jun 7, 2024
533ca1a
Lots of various refactoring and fixes:
Drulikar Jun 7, 2024
ab136c9
Update code/modules/cm_aliens/hivebuffs/hivebuff.dm
Drulikar Jun 7, 2024
afd2e22
Refactored resin construction blockers
Drulikar Jun 7, 2024
f73cee9
Pre-deconflict smoke
Drulikar Jun 7, 2024
c5f69d1
Fix destroyer langchat
Drulikar Jun 7, 2024
61e35aa
Fix and reimplement buffs as flat buffs
Drulikar Jun 8, 2024
3c772de
Fix playtime checking and increase time to 50 hours
Drulikar Jun 8, 2024
66bf045
postevac destroyer fix
Git-Nivrak Jun 8, 2024
e7ee87b
Update hivebuff.dm
Git-Nivrak Jun 8, 2024
d0b3bf0
King partial refactor
Git-Nivrak Jun 8, 2024
5ed68f2
Update hivebuff.dm
Git-Nivrak Jun 8, 2024
2e71232
armor boon nerf
Git-Nivrak Jun 8, 2024
679c2d4
fix infinite buff stacking
Git-Nivrak Jun 8, 2024
a98a347
icon fixes
Git-Nivrak Jun 8, 2024
baf5ff4
Update destroyer_powers.dm
Git-Nivrak Jun 8, 2024
1d3521e
Update destroyer_powers.dm
Git-Nivrak Jun 8, 2024
a158bfd
Pheromones and cooldowns
Git-Nivrak Jun 8, 2024
df4c214
linter
Git-Nivrak Jun 8, 2024
1dd06c1
Some icon cleanup
Git-Nivrak Jun 9, 2024
56b041d
Merge remote-tracking branch 'upstream/master' into xeno_endgame_revive
Drulikar Jun 9, 2024
e6c0d98
review
Git-Nivrak Jun 9, 2024
c6b179b
fix indentation
Drulikar Jun 9, 2024
009f3f1
Update code/modules/mob/living/carbon/xenomorph/castes/King.dm
Git-Nivrak Jun 9, 2024
75dbb9c
balance changes
Git-Nivrak Jun 9, 2024
c86a68c
review
Git-Nivrak Jun 10, 2024
52015c1
Update global_lists.dm
Git-Nivrak Jun 10, 2024
d3db3d7
Update XenoStructures.dm
Git-Nivrak Jun 10, 2024
626af06
review
Git-Nivrak Jun 11, 2024
1f811c2
Voting
Git-Nivrak Jun 11, 2024
7940e96
Update XenoStructures.dm
Git-Nivrak Jun 11, 2024
5fafba7
Update XenoStructures.dm
Git-Nivrak Jun 11, 2024
4b63b4c
Update XenoStructures.dm
Git-Nivrak Jun 11, 2024
52a76ae
core icon fix
Git-Nivrak Jun 11, 2024
3db8a9a
Fix most xenos not being able to vote
Git-Nivrak Jun 11, 2024
731e2ba
Update XenoStructures.dm
Git-Nivrak Jun 11, 2024
5f5a5c0
Apply suggestions from code review
Git-Nivrak Jun 12, 2024
23833f0
Update XenoStructures.dm
Git-Nivrak Jun 12, 2024
0fde488
Make it compile
Git-Nivrak Jun 12, 2024
c290346
linter
Git-Nivrak Jun 13, 2024
4f280a8
Update XenoStructures.dm
Git-Nivrak Jun 13, 2024
837381d
Update XenoStructures.dm
Git-Nivrak Jun 13, 2024
25f3f77
Update XenoStructures.dm
Git-Nivrak Jun 13, 2024
8be1bf4
Fix expedited king ignoring votes
Git-Nivrak Jun 14, 2024
cc752b1
stuff
Git-Nivrak Jun 14, 2024
8ecf36f
Apply suggestions from code review
Git-Nivrak Jun 14, 2024
d090bb4
Update hivebuff.dm
Git-Nivrak Jun 14, 2024
d08093d
a
Git-Nivrak Jun 14, 2024
f0ec15e
Update hivebuff.dm
Git-Nivrak Jun 14, 2024
e1f54d2
Update XenoStructures.dm
Git-Nivrak Jun 14, 2024
d1e743a
Update XenoStructures.dm
Git-Nivrak Jun 14, 2024
2b2a9f0
Apply suggestions from code review
Git-Nivrak Jun 14, 2024
712faad
potentially fix 0 evo after evo buff
Git-Nivrak Jun 16, 2024
d3c03a4
Update hivebuff.dm
Git-Nivrak Jun 16, 2024
0046e82
Update code/modules/cm_aliens/XenoStructures.dm
Git-Nivrak Jun 16, 2024
d840f85
Update XenoStructures.dm
Git-Nivrak Jun 16, 2024
0bf92a8
Update XenoStructures.dm
Git-Nivrak Jun 16, 2024
3cce83f
fixes it for real this time
Git-Nivrak Jun 16, 2024
43d8fba
doom improvement round 1
Git-Nivrak Jun 17, 2024
0cf0f95
Update code/modules/cm_aliens/XenoStructures.dm
Git-Nivrak Jun 18, 2024
0366707
Update code/modules/cm_aliens/XenoStructures.dm
Git-Nivrak Jun 18, 2024
2bdac38
Update code/modules/cm_aliens/XenoStructures.dm
Git-Nivrak Jun 19, 2024
6c12d0c
one loop
Git-Nivrak Jun 19, 2024
698ef07
as anything
Git-Nivrak Jun 19, 2024
c6d0991
Update XenoStructures.dm
Git-Nivrak Jun 21, 2024
c33557c
Makes voting actually work
Git-Nivrak Jun 21, 2024
7ff947b
Update code/modules/cm_aliens/XenoStructures.dm
Drulikar Jun 21, 2024
469ffbc
Update XenoStructures.dm
Git-Nivrak Jun 22, 2024
5de79d5
Maybe fix ghost lights
Git-Nivrak Jun 22, 2024
cb6d75f
Update king_powers.dm
Git-Nivrak Jun 23, 2024
0a23f6e
unique name for fullscreens
Git-Nivrak Jun 24, 2024
10c4551
Different hive hatcherys
Git-Nivrak Jun 27, 2024
5f8f62f
Update XenoStructures.dm
Git-Nivrak Jun 28, 2024
cca3ef6
Update XenoStructures.dm
Git-Nivrak Jun 28, 2024
83e7cc6
Update XenoStructures.dm
Git-Nivrak Jun 28, 2024
950e32f
Update XenoStructures.dm
Git-Nivrak Jul 2, 2024
18cfcab
Update code/modules/cm_aliens/hivebuffs/hivebuff.dm
Git-Nivrak Jul 3, 2024
e561484
Update hivebuff.dm
Git-Nivrak Jul 7, 2024
a70e4ec
Fixes buying buffs after evac
Git-Nivrak Jul 12, 2024
77b32d4
Update code/modules/cm_aliens/hivebuffs/hivebuff.dm
Git-Nivrak Jul 14, 2024
4b0a789
Update queen_powers.dm
Git-Nivrak Jul 14, 2024
e04d971
Merge remote-tracking branch 'upstream/master' into xeno_endgame_revive
Drulikar Jul 16, 2024
f69b5c5
Merge remote-tracking branch 'upstream/master' into xeno_endgame_revive
Drulikar Jul 21, 2024
8d2cc8f
a
Git-Nivrak Aug 3, 2024
97b9492
Apply suggestions from code review
Git-Nivrak Aug 24, 2024
c6908f2
Fixes vote not working
Git-Nivrak Sep 7, 2024
b84244f
brings armor extinguish time in line with the rest
Git-Nivrak Sep 7, 2024
a7a23fe
buffs
Git-Nivrak Sep 12, 2024
22dcde5
prevents gibbing (same as queen)
Git-Nivrak Sep 14, 2024
e85c0c6
Merge remote-tracking branch 'upstream/master' into xeno_endgame_revive
Drulikar Oct 7, 2024
1afe9c9
Refactor king visuals
Drulikar Oct 7, 2024
cb5f267
Spellcheck
Drulikar Oct 21, 2024
689c350
Merge branch 'master' into xeno_endgame_revive
Nanu308 Oct 22, 2024
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
2 changes: 2 additions & 0 deletions code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,5 @@

/// used in /datum/component/status_effect/cleanse()
#define COMSIG_XENO_DEBUFF_CLEANSE "xeno_debuff_cleanse"
/// From /mob/living/carbon/xenomorph/proc/do_evolve()
#define COMSIG_XENO_EVOLVE_TO_NEW_CASTE "xeno_evolve_to_new_caste"
9 changes: 9 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -386,3 +386,12 @@ GLOBAL_LIST_INIT(default_xeno_onmob_icons, list(
#define MOBILITY_FLAGS_LYING_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_LIEDOWN)
#define MOBILITY_FLAGS_CARBON_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN)
#define MOBILITY_FLAGS_REST_CAPABLE_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_REST | MOBILITY_LIEDOWN)

/// Sleeps for X and will perform return if A is qdeleted or a dead mob.
#define SLEEP_CHECK_DEATH(X, A) \
sleep(X); \
if(QDELETED(A)) return; \
if(ismob(A)) { \
var/mob/sleep_check_death_mob = A; \
if(sleep_check_death_mob.stat == DEAD) return; \
}
13 changes: 10 additions & 3 deletions code/__DEFINES/xeno.dm
Git-Nivrak marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@
/// The time when xenos can start taking over comm towers
#define XENO_COMM_ACQUISITION_TIME (55 MINUTES)

/// The time it takes for a pylon to give one larva while activated
/// The time it takes for a pylon to give one royal resin while activated
#define XENO_PYLON_ACTIVATION_COOLDOWN (5 MINUTES)

/// The time until you can re-corrupt a comms relay after the last pylon was destroyed
Expand Down Expand Up @@ -255,6 +255,7 @@
#define XENO_HEALTH_TIER_14 950 * XENO_UNIVERSAL_HPMULT
#define XENO_HEALTH_QUEEN 1000 * XENO_UNIVERSAL_HPMULT
#define XENO_HEALTH_IMMORTAL 1200 * XENO_UNIVERSAL_HPMULT
#define XENO_HEALTH_KING 1500 * XENO_UNIVERSAL_HPMULT

// Plasma bands
#define XENO_NO_PLASMA 0
Expand Down Expand Up @@ -434,6 +435,7 @@
// Armor mods. Use the above defines for some guidance
// In general, +20 armor should be a little more than +20% effective HP, however,
// the higher the Xeno's base armor, the greater the effect.
#define XENO_ARMOR_MOD_TINY 2.5
#define XENO_ARMOR_MOD_VERY_SMALL 5
#define XENO_ARMOR_MOD_SMALL 10
#define XENO_ARMOR_MOD_MED 15
Expand Down Expand Up @@ -665,6 +667,7 @@
#define XENO_SHIELD_SOURCE_GARDENER 8
#define XENO_SHIELD_SOURCE_SHIELD_PILLAR 9
#define XENO_SHIELD_SOURCE_CUMULATIVE_GENERIC 10
#define XENO_SHIELD_SOURCE_KING_BULWARKSPELL 11

//XENO CASTES
#define XENO_CASTE_LARVA "Bloody Larva"
Expand Down Expand Up @@ -693,13 +696,17 @@
#define XENO_CASTE_CRUSHER "Crusher"
#define XENO_CASTE_RAVAGER "Ravager"
#define XENO_T3_CASTES list(XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER)
//special

//Tier 4
#define XENO_CASTE_KING "King"
#define XENO_CASTE_QUEEN "Queen"

//special
#define XENO_CASTE_PREDALIEN "Predalien"
#define XENO_CASTE_HELLHOUND "Hellhound"
#define XENO_SPECIAL_CASTES list(XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND)

#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND)
#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND, XENO_CASTE_KING)

// Checks if two hives are allied to each other.
// PARAMETERS:
Expand Down
6 changes: 5 additions & 1 deletion code/_globalvars/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -220,11 +220,15 @@ GLOBAL_LIST_INIT_TYPED(hive_datum, /datum/hive_status, list(
XENO_HIVE_TUTORIAL = new /datum/hive_status/tutorial()
))

GLOBAL_VAR_INIT(king_acquisition_time, 1 HOURS + 30 MINUTES + rand(0, 25) MINUTES)
GLOBAL_LIST_INIT(xeno_evolve_times, setup_xeno_evolve_times())

/proc/setup_xeno_evolve_times()
for(var/datum/caste_datum/caste as anything in subtypesof(/datum/caste_datum))
LAZYADDASSOCLIST(., num2text(initial(caste.minimum_evolve_time)), caste)
if(initial(caste.caste_type) == XENO_CASTE_KING)
LAZYADDASSOCLIST(., num2text(GLOB.king_acquisition_time), caste)
else
LAZYADDASSOCLIST(., num2text(initial(caste.minimum_evolve_time)), caste)

GLOBAL_LIST_INIT(custom_event_info_list, setup_custom_event_info())

Expand Down
1 change: 1 addition & 0 deletions code/datums/langchat/langchat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/mob/living/carbon/xenomorph/hivelord/langchat_height = 64
/mob/living/carbon/xenomorph/defender/langchat_height = 48
/mob/living/carbon/xenomorph/warrior/langchat_height = 48
/mob/living/carbon/xenomorph/king/langchat_height = 64

#define LANGCHAT_LONGEST_TEXT 64
#define LANGCHAT_WIDTH 96
Expand Down
20 changes: 20 additions & 0 deletions code/datums/xeno_shields/shield_types/king_shield.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/// Shield can be equal to a maximum of percent_maxhealth_damagecap of the receiver's max hp
/datum/xeno_shield/king_shield
duration = 10 SECONDS
decay_amount_per_second = 100
/// The maximum damage multiplier of max health to apply in a hit
var/percent_maxhealth_damagecap = 0.1

/datum/xeno_shield/king_shield/on_hit(damage)
var/relative_damage_cap = linked_xeno.maxHealth * percent_maxhealth_damagecap

if(damage > relative_damage_cap)
damage = relative_damage_cap
return ..(damage)


/datum/xeno_shield/king_shield/on_removal()
. = ..()
if(linked_xeno)
// Remove the shield overlay early
linked_xeno.remove_suit_layer()
12 changes: 7 additions & 5 deletions code/datums/xeno_shields/xeno_shield.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
// Use the type var if you need to construct a shield with different on hit behavior, damage reduction, etc.
/mob/living/carbon/xenomorph/proc/add_xeno_shield(\
added_amount, shield_source, type = /datum/xeno_shield, \
duration = -1, decay_amount_per_second = 1, \
duration, decay_amount_per_second, \
add_shield_on = FALSE, max_shield = 200)
for (var/datum/xeno_shield/curr_shield in xeno_shields)
if (shield_source == curr_shield.shield_source)
Expand All @@ -78,12 +78,14 @@
new_shield.shield_source = shield_source
xeno_shields += new_shield
new_shield.last_damage_taken = world.time // So we don't insta-delete our shield.

new_shield.decay_amount_per_second = decay_amount_per_second
if(decay_amount_per_second)
new_shield.decay_amount_per_second = decay_amount_per_second
if(duration)
new_shield.duration = duration
new_shield.linked_xeno = src

if(duration > -1)
addtimer(CALLBACK(new_shield, TYPE_PROC_REF(/datum/xeno_shield, begin_decay)), duration)
if(new_shield.duration > -1)
addtimer(CALLBACK(new_shield, TYPE_PROC_REF(/datum/xeno_shield, begin_decay)), new_shield.duration)

overlay_shields()
return new_shield
Expand Down
2 changes: 2 additions & 0 deletions code/game/jobs/role_authority.dm
Original file line number Diff line number Diff line change
Expand Up @@ -770,6 +770,8 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
M = /mob/living/carbon/xenomorph/predalien
if(XENO_CASTE_HELLHOUND)
M = /mob/living/carbon/xenomorph/hellhound
if(XENO_CASTE_KING)
M = /mob/living/carbon/xenomorph/king
return M


Expand Down
16 changes: 16 additions & 0 deletions code/game/objects/effects/effect_system/smoke.dm
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,22 @@

// XENO SMOKES

/obj/effect/particle_effect/smoke/king
opacity = FALSE
color = "#000000"
icon = 'icons/effects/effects.dmi'
icon_state = "sparks"
anchored = TRUE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
layer = BELOW_OBJ_LAYER
time_to_live = 5
spread_speed = 1
pixel_x = 0
pixel_y = 0

/datum/effect_system/smoke_spread/king_doom
smoke_type = /obj/effect/particle_effect/smoke/king

/datum/effect_system/smoke_spread/xeno_acid
smoke_type = /obj/effect/particle_effect/smoke/xeno_burn

Expand Down
13 changes: 13 additions & 0 deletions code/game/objects/effects/heavy_impact.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//-----------------------------------------
//HEAVY IMPACT
//-----------------------------------------

/obj/effect/heavy_impact
icon = 'icons/effects/heavyimpact.dmi'
icon_state = "heavyimpact"
var/duration = 1.3 SECONDS

/obj/effect/heavy_impact/Initialize(mapload)
. = ..()
flick("heavyimpact", src)
AddElement(/datum/element/temporary, duration)
51 changes: 51 additions & 0 deletions code/game/objects/effects/king_leap.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
//-----------------------------------------
//KING LEAP
//-----------------------------------------

#define LEAP_HEIGHT 210 //how high up leaps go, in pixels

/obj/effect/king_leap
icon = 'icons/mob/xenos/king.dmi'
icon_state = "Normal King Charging"
layer = 4.7
plane = -4
pixel_x = -32
var/duration = 10

/obj/effect/king_leap/Initialize(mapload, negative, dir)
. = ..()
setDir(dir)
INVOKE_ASYNC(src, PROC_REF(flight), negative)
AddElement(/datum/element/temporary, duration)

/obj/effect/king_leap/proc/flight(negative)
if(negative)
animate(src, pixel_x = -LEAP_HEIGHT*0.1, pixel_z = LEAP_HEIGHT*0.15, time = 3, easing = BOUNCE_EASING)
else
animate(src, pixel_x = LEAP_HEIGHT*0.1, pixel_z = LEAP_HEIGHT*0.15, time = 3, easing = BOUNCE_EASING)
sleep(0.3 SECONDS)
icon_state = "Normal King Charging"
if(negative)
animate(src, pixel_x = -LEAP_HEIGHT, pixel_z = LEAP_HEIGHT, time = 7)
else
animate(src, pixel_x = LEAP_HEIGHT, pixel_z = LEAP_HEIGHT, time = 7)

/obj/effect/king_leap/end
pixel_x = LEAP_HEIGHT
pixel_z = LEAP_HEIGHT
duration = 10

/obj/effect/king_leap/end/flight(negative)
if(negative)
pixel_x = -LEAP_HEIGHT
animate(src, pixel_x = -16, pixel_z = 0, time = 5)
else
animate(src, pixel_x = -16, pixel_z = 0, time = 5)

/obj/effect/xenomorph/xeno_telegraph/king_attack_template
icon = 'icons/effects/96x96.dmi'
icon_state = "landing2"
layer = BELOW_MOB_LAYER

/obj/effect/xenomorph/xeno_telegraph/king_attack_template/yellow
icon_state = "xenolandingyellow"
5 changes: 5 additions & 0 deletions code/modules/admin/player_panel/actions/transform.dm
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,11 @@ GLOBAL_LIST_INIT(pp_transformables, list(
name = XENO_CASTE_PREDALIEN,
key = /mob/living/carbon/xenomorph/predalien,
color = "purple"
),
list(
name = XENO_CASTE_KING,
key = /mob/living/carbon/xenomorph/king,
color="purple"
)
),

Expand Down
Loading
Loading