Skip to content

Commit d24fe54

Browse files
committed
Swap Dash Trigger from deskilln's Expert map
1 parent 96a0ba1 commit d24fe54

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

Ahorn/triggers/swapDashTrigger.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module SpringCollab2020SwapDashTrigger
2+
3+
using ..Ahorn, Maple
4+
5+
@mapdef Trigger "SpringCollab2020/SwapDashTrigger" SwapDashTrigger(x::Integer, y::Integer, width::Integer=Maple.defaultTriggerWidth, height::Integer=Maple.defaultTriggerHeight)
6+
7+
const placements = Ahorn.PlacementDict(
8+
"Swap Dash (Spring Collab 2020)" => Ahorn.EntityPlacement(
9+
SwapDashTrigger,
10+
"rectangle"
11+
)
12+
)
13+
14+
end

Triggers/SwapDashTrigger.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using Celeste.Mod.Entities;
2+
using Microsoft.Xna.Framework;
3+
4+
namespace Celeste.Mod.SpringCollab2020.Triggers {
5+
[CustomEntity("SpringCollab2020/SwapDashTrigger")]
6+
class SwapDashTrigger : Trigger {
7+
private float enterX;
8+
9+
public SwapDashTrigger(EntityData data, Vector2 offset)
10+
: base(data, offset) {
11+
}
12+
13+
public override void OnEnter(Player player) {
14+
enterX = player.X;
15+
}
16+
17+
public override void OnLeave(Player player) {
18+
Session session = SceneAs<Level>().Session;
19+
if (player.MaxDashes == 1 && (!(enterX + 16f >= player.X) || !(enterX - 16f <= player.X))) {
20+
session.Inventory.Dashes = 2;
21+
} else if (player.MaxDashes == 2 && (!(enterX + 16f >= player.X) || !(enterX - 16f <= player.X))) {
22+
session.Inventory.Dashes = 1;
23+
if (player.Dashes == 2) {
24+
player.Dashes = 1;
25+
}
26+
}
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)