Skip to content
Dzhake edited this page May 6, 2024 · 15 revisions

Sequence

Entities

Sequence Block Controller (AKA Sequence Block Manager)

Must be placed in each room with any cossette stuff. Has some options (read tooltips :D)

Sequence Block

Like cassette block, but which color in now active is changed by Sequence Block Controller.

Sequence Refill

When player dashes after collecting Sequence Refill, Sequence Block Controller cycles active color.

Sequence Touch Switch

When all touch switches from same group are activated, Sequence Block Controller cycles active color.

Sequence XXXXXX

Usually means some entity which activates/deactivates with sequence blocks.

Triggers

Cycle Sequence Blocks Trigger

After touching, Sequence Block Controller cycles active color.

Set Sequence Block Trigger

After touching, Sequence Block Controller sets active color to picked one (in settings).

Entities

Freeze Refill

Like refill but it doesn't refill dash or stamina, just gives freeze frames (you can change freeze time in freeze refill's settings)

Custom Decal

Like decal. But custom. Path is relative to Graphics/Atlases/Gameplay/ Useful with lua because every member is public (wait i made thing which passes this ldfjalfssad) use .UpdateSprite() to, well, update sprite

Custom Hi-Res Decal

Same as above but hi-res lol

Void Lift

Inspired by Rogue Legacy 2, suggestion by Summi(tBadeline) When player dashes horizontally, and touches void lift, player loses X speed, and player's Y speed sets to New Speed (option)

Triggers

Timed Kill Trigger

Kills player after some time (customizable) while player is in trigger.

Lua

How to use

local dzhake = require("#Celeste.Mod.DzhakeHelper.Utils").Lua

What it can do

GetPrivateMember(object obj, string name) - Get member of object. Member if cool word for "thing". Like, Player has private member "Dashes". You can't get it with player.Dashes, but you can with dzhake.GetPrivateMember(player,"Dashes")

SetPrivateMember(object obj, string name, object newValue) - Read above. Kinda same, but sets value instead.

CallMethod(object obj, string name, LuaTable args) - Read above. Method is cool word for "function". Like, you can't call player.StartDash() but you can do dzhake.CallMethod(player,"StartDash"). Just don't add args if method doesn't need them. Args should look like {"first arg",2}

StoreVariable(object obj, string name) - Store variable in Session. This means that it'll be resetted if chapter restarts, but will not if player Save&Quits

GetStoredVariable(string name) - Store above, and get.

RemoveStoredVariable(string name) - Remove variable. To save space ig? Not sure lol.

Technical info (for lua and c#)

ctors

CustomHiResDecal(Vector2 position, Vector2 offset, string imagePath, int depth, Vector2 scale, float rotation, Color color, SpriteBank pathStart) : base(position + offset)

CustomDecal(Vector2 position,Vector2 offset, string imagePath, int depth, Color color, Vector2 scale, float rotation, bool animated, string flag, bool updateSpriteOnlyIfFlag, bool inversedFlag, string animationName, float delay) : base(position + offset)