Rivals of Aether

Rivals of Aether

SSL Solid Snake
Rioku  [developer] 23 Sep, 2021 @ 8:53pm
How to add SSL sleep to your characters.
Here's how to give your SSL characters the sleep status effect

hit_player.gml
if(my_hitboxID.attack == MY_ATTACK_HERE and my_hitboxID.hbox_num == HITBOX_NUMBER_HERE){ with(hit_player_obj){ if(!("ssl_sleep_lockout" in self) or ssl_sleep_lockout <= 0){ ssl_sleep_owner == other.player if(!free){ was_parried = true; parry_lag = max(20, floor((get_player_damage(player)+30)/2)); ssl_sleep_lag = parry_lag; ssl_sleep_lockout = 10; ssl_air_sleep = false; set_state(PS_PRATLAND); } else { ssl_air_sleep = true; ssl_sleep_lag = max(10, floor((get_player_damage(player)+30)/4)) set_state(PS_PRATFALL); } } } }

update.gml
with(oPlayer){ if("ssl_sleep_lag" in self and ssl_sleep_owner == other.player){ if(ssl_sleep_lag > 0){ ssl_sleep_lag--; if(state_cat == SC_HITSTUN){ ssl_sleep_lag = 0; } if(state == PS_PRATFALL and ssl_sleep_lag <= 0){ state = PS_IDLE_AIR; } else if (state == PS_PRATLAND and ssl_air_sleep){ was_parried = true; ssl_sleep_lag *= 2; parry_lag = ssl_sleep_lag; ssl_air_sleep = false; set_state(PS_PRATLAND); } } else if(ssl_sleep_lockout > 0) { ssl_sleep_lockout--; } } }

pre_draw.gml
var sleep = sprite_get("sleepstatus"); with(oPlayer){ if("ssl_sleep_lag" in self and ssl_sleep_lag > 0 and ssl_sleep_owner == other.player){ shader_start(); draw_sprite_ext(sleep, get_gameplay_time()/8%4, x-30, y-char_height-32, 1, 1, 0, c_white, 1); shader_end(); } }
Put this in your sprites folder:
[img]https://i.imgur.com/guzvn5d.png[/img]
This line goes in load.gml
sprite_change_offset("sleepstatus", 128, 128);

To give sleep compatibility if you'd like a special sleeping animation for your character:

Init.gml
ssl_sleep_anim_speed = (Animation speed goes here.) ssl_sleep_anim_frames = (Put the number of frames of the sleeping animation here)

Animation.gml
if("ssl_sleep_lag" in self and ssl_sleep_lag > 0 and (state == PS_PRATFALL or PS_PRATLAND)){ sprite_index = sprite_get("ssl_sleep"); image_index = (ssl_sleep_lag*ssl_sleep_anim_speed)%ssl_sleep_anim_frames; }

Name your image ssl_sleep_stripX.png
Last edited by Rioku; 25 Sep, 2021 @ 3:07am