Skip to content

Commit fe05853

Browse files
authored
Merge pull request #158 from EverestAPI/block_climb_hops_on_grouped_trigger_spikes
Block climbing on top of extended grouped trigger spikes
2 parents 419743e + 09869ac commit fe05853

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

Entities/GroupedTriggerSpikes.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public static Entity LoadRight(Level level, LevelData levelData, Vector2 offset,
4444
private Vector2[] spikePositions;
4545
private List<MTexture> spikeTextures;
4646

47+
private bool blockingLedge = false;
48+
4749
public GroupedTriggerSpikes(EntityData data, Vector2 offset, Directions dir)
4850
: this(data.Position + offset, GetSize(data, dir), dir, data.Attr("type", "default")) {
4951
}
@@ -238,6 +240,24 @@ public override void Update() {
238240
Triggered = false;
239241
}
240242
}
243+
244+
// "climb hopping" should be blocked if trigger spikes are going to kill Madeline (Lerp >= 1).
245+
// this is done by adding a LedgeBlocker component.
246+
if (blockingLedge != (Lerp >= 1f)) {
247+
blockingLedge = !blockingLedge;
248+
249+
// add or remove the ledge blocker depending on the need.
250+
if (blockingLedge) {
251+
Add(new LedgeBlocker());
252+
} else {
253+
foreach (Component component in this) {
254+
if (component is LedgeBlocker) {
255+
Remove(component);
256+
break;
257+
}
258+
}
259+
}
260+
}
241261
}
242262

243263
public override void Render() {

0 commit comments

Comments
 (0)