From c95563f9185a0af6f4eee3f843a436a5ed6cdbcd Mon Sep 17 00:00:00 2001 From: Maddie <52103563+maddie480@users.noreply.github.com> Date: Wed, 21 Aug 2024 22:00:04 +0200 Subject: [PATCH] Add Flag-Toggle Camera Catchup Speed Trigger --- Ahorn/lang/en_gb.lang | 6 ++++++ ...HelpingHandCameraFlagToggleCatchupSpeed.jl | 15 +++++++++++++++ Loenn/lang/en_gb.lang | 7 +++++++ .../triggers/flagToggleCameraCatchupSpeed.lua | 19 +++++++++++++++++++ .../FlagToggleCameraCatchupSpeedTrigger.cs | 14 ++++++++++++++ 5 files changed, 61 insertions(+) create mode 100644 Ahorn/triggers/maxHelpingHandCameraFlagToggleCatchupSpeed.jl create mode 100644 Loenn/triggers/flagToggleCameraCatchupSpeed.lua create mode 100644 Triggers/FlagToggleCameraCatchupSpeedTrigger.cs diff --git a/Ahorn/lang/en_gb.lang b/Ahorn/lang/en_gb.lang index 582bbd9e..f9fa7dbd 100644 --- a/Ahorn/lang/en_gb.lang +++ b/Ahorn/lang/en_gb.lang @@ -8,6 +8,12 @@ placements.entities.MaxHelpingHand/TempleEyeTrackingMadeline.tooltips.spriteDire placements.triggers.MaxHelpingHand/CameraCatchupSpeedTrigger.tooltips.catchupSpeed=Raise this value to have the camera scroll quicker to its target. Vanilla values are 8 during the temple fall cutscene, and 1 everywhere else. placements.triggers.MaxHelpingHand/CameraCatchupSpeedTrigger.tooltips.revertOnLeave=Whether the camera catchup speed should go back to normal after leaving the trigger. +# Flag Toggle Camera Catchup Speed Trigger +placements.triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.tooltips.catchupSpeed=Raise this value to have the camera scroll quicker to its target. Vanilla values are 8 during the temple fall cutscene, and 1 everywhere else. +placements.triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.tooltips.revertOnLeave=Whether the camera catchup speed should go back to normal after leaving the trigger. +placements.triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.tooltips.flag=The flag this trigger should react to. +placements.triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.tooltips.inverted=If checked, the trigger will be disabled when the flag is active.\nIf unchecked, the trigger will be enabled when the flag is active. + # Flag Touch Switch placements.entities.MaxHelpingHand/FlagTouchSwitch.tooltips.flag=The session flag this touch switch sets. Give the same to multiple touch switches and switch gates to group them. placements.entities.MaxHelpingHand/FlagTouchSwitch.tooltips.icon=The name of the icon for the touch switch (relative to objects/MaxHelpingHand/flagTouchSwitch), or "vanilla" for the default one. diff --git a/Ahorn/triggers/maxHelpingHandCameraFlagToggleCatchupSpeed.jl b/Ahorn/triggers/maxHelpingHandCameraFlagToggleCatchupSpeed.jl new file mode 100644 index 00000000..402c5557 --- /dev/null +++ b/Ahorn/triggers/maxHelpingHandCameraFlagToggleCatchupSpeed.jl @@ -0,0 +1,15 @@ +module MaxHelpingHandFlagToggleCameraCatchupSpeedTrigger + +using ..Ahorn, Maple + +@mapdef Trigger "MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger" FlagToggleCameraCatchupSpeedTrigger(x::Integer, y::Integer, width::Integer=Maple.defaultTriggerWidth, height::Integer=Maple.defaultTriggerHeight, + catchupSpeed::Number=1.0, revertOnLeave::Bool=true, flag::String="flag_toggle_camera_catchup_speed", inverted::Bool=false) + +const placements = Ahorn.PlacementDict( + "Camera Catchup Speed (Flag-Toggled) (Maddie's Helping Hand)" => Ahorn.EntityPlacement( + FlagToggleCameraCatchupSpeedTrigger, + "rectangle" + ) +) + +end \ No newline at end of file diff --git a/Loenn/lang/en_gb.lang b/Loenn/lang/en_gb.lang index 6eccf985..ad58c1eb 100644 --- a/Loenn/lang/en_gb.lang +++ b/Loenn/lang/en_gb.lang @@ -874,6 +874,13 @@ triggers.MaxHelpingHand/CameraCatchupSpeedTrigger.placements.name.trigger=Camera triggers.MaxHelpingHand/CameraCatchupSpeedTrigger.attributes.description.catchupSpeed=Raise this value to have the camera scroll quicker to its target. Vanilla values are 8 during the temple fall cutscene, and 1 everywhere else. triggers.MaxHelpingHand/CameraCatchupSpeedTrigger.attributes.description.revertOnLeave=Whether the camera catchup speed should go back to normal after leaving the trigger. +# Flag Toggle Camera Catchup Speed Trigger +triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.placements.name.trigger=Camera Catchup Speed (Flag-Toggled) +triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.attributes.description.catchupSpeed=Raise this value to have the camera scroll quicker to its target. Vanilla values are 8 during the temple fall cutscene, and 1 everywhere else. +triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.attributes.description.revertOnLeave=Whether the camera catchup speed should go back to normal after leaving the trigger. +triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.attributes.description.flag=The flag this trigger should react to. +triggers.MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger.attributes.description.inverted=If checked, the trigger will be disabled when the flag is active.\nIf unchecked, the trigger will be enabled when the flag is active. + # Camera Offset Border triggers.MaxHelpingHand/CameraOffsetBorder.placements.name.trigger=Camera Offset Border triggers.MaxHelpingHand/CameraOffsetBorder.attributes.description.topLeft=Whether this border should have an effect when the player is on the top-left of it. diff --git a/Loenn/triggers/flagToggleCameraCatchupSpeed.lua b/Loenn/triggers/flagToggleCameraCatchupSpeed.lua new file mode 100644 index 00000000..4943e6f3 --- /dev/null +++ b/Loenn/triggers/flagToggleCameraCatchupSpeed.lua @@ -0,0 +1,19 @@ +local mods = require("mods") +local generateTriggerName = mods.requireFromPlugin("libraries.triggerRenamer") + +local trigger = {} + +trigger.name = "MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger" +trigger.category = "camera" +trigger.triggerText = generateTriggerName +trigger.placements = { + name = "trigger", + data = { + catchupSpeed = 1.0, + revertOnLeave = true, + flag = "flag_toggle_camera_catchup_speed", + inverted = false + } +} + +return trigger \ No newline at end of file diff --git a/Triggers/FlagToggleCameraCatchupSpeedTrigger.cs b/Triggers/FlagToggleCameraCatchupSpeedTrigger.cs new file mode 100644 index 00000000..ab0a42cb --- /dev/null +++ b/Triggers/FlagToggleCameraCatchupSpeedTrigger.cs @@ -0,0 +1,14 @@ +using Celeste.Mod.Entities; +using Microsoft.Xna.Framework; +using Monocle; + +namespace Celeste.Mod.MaxHelpingHand.Triggers { + [CustomEntity("MaxHelpingHand/FlagToggleCameraCatchupSpeedTrigger")] + public static class FlagToggleCameraCatchupSpeedTrigger { + public static Entity Load(Level level, LevelData levelData, Vector2 offset, EntityData entityData) { + Trigger trigger = new CameraCatchupSpeedTrigger(entityData, offset); + trigger.Add(new FlagToggleComponent(entityData.Attr("flag"), entityData.Bool("inverted"))); + return trigger; + } + } +}