diff --git a/Ahorn/entities/silverBerry.jl b/Ahorn/entities/silverBerry.jl index de189f4..a6dff7c 100644 --- a/Ahorn/entities/silverBerry.jl +++ b/Ahorn/entities/silverBerry.jl @@ -2,7 +2,7 @@ module CollabUtils2SilverBerry using ..Ahorn, Maple -@mapdef Entity "CollabUtils2/SilverBerry" SilverBerry(x::Integer, y::Integer) +@mapdef Entity "CollabUtils2/SilverBerry" SilverBerry(x::Integer, y::Integer, alwaysSpawn::Bool=false) const placements = Ahorn.PlacementDict( "Silver Berry (Collab Utils 2 / READ DOCS)" => Ahorn.EntityPlacement( diff --git a/Ahorn/lang/en_gb.lang b/Ahorn/lang/en_gb.lang index b37294b..02569ce 100644 --- a/Ahorn/lang/en_gb.lang +++ b/Ahorn/lang/en_gb.lang @@ -28,6 +28,9 @@ placements.entities.CollabUtils2/FakeMiniHeart.tooltips.playPulseSound=Whether t placements.entities.CollabUtils2/FakeMiniHeart.tooltips.playBreakSound=Whether the heart should play a refill sound when broken. placements.entities.CollabUtils2/FakeMiniHeart.tooltips.flagOnBreak=If filled out, the given flag will be set when the fake mini heart is broken. +# Silver Berry +placements.entities.CollabUtils2/SilverBerry.tooltips.alwaysSpawn=If checked, the silver berry will always spawn, even if the player did not complete the map yet. + # Rainbow Berry placements.entities.CollabUtils2/RainbowBerry.tooltips.levelSet=The rainbow berry will only spawn if all silver berries in this level set have been collected. placements.entities.CollabUtils2/RainbowBerry.tooltips.maps=This setting allows to restrict which maps in the level set this rainbow berry takes into account. To do this, list the map names (.bin names only) separated by commas.\nLeave empty if you want the player to collect all silver berries in the level set to make the rainbow berry spawn. diff --git a/Entities/SilverBerry.cs b/Entities/SilverBerry.cs index ed32ce9..fb5df7d 100644 --- a/Entities/SilverBerry.cs +++ b/Entities/SilverBerry.cs @@ -16,9 +16,11 @@ public class SilverBerry : Strawberry { private static ParticleType P_OrigGhostGlow; private bool spawnedThroughGiveSilver = false; + private readonly bool alwaysSpawn; public SilverBerry(EntityData data, Vector2 offset, EntityID gid) : base(data, offset, gid) { new DynData(this)["Golden"] = true; + alwaysSpawn = data.Bool("alwaysSpawn"); if (P_SilverGlow == null) { P_SilverGlow = new ParticleType(P_Glow) { @@ -39,7 +41,7 @@ public override void Added(Scene scene) { Session session = (scene as Level).Session; if (!spawnedThroughGiveSilver && ((session.FurthestSeenLevel != session.Level && session.Deaths != 0) || - (!SaveData.Instance.CheatMode && !SaveData.Instance.Areas_Safe[session.Area.ID].Modes[(int) session.Area.Mode].Completed))) { + (!alwaysSpawn && !SaveData.Instance.CheatMode && !SaveData.Instance.Areas_Safe[session.Area.ID].Modes[(int) session.Area.Mode].Completed))) { // we went in a further screen and die, or didn't complete the level once yet: don't have the berry spawn. RemoveSelf(); diff --git a/Loenn/entities/silverBerry.lua b/Loenn/entities/silverBerry.lua index b247be8..06df528 100644 --- a/Loenn/entities/silverBerry.lua +++ b/Loenn/entities/silverBerry.lua @@ -3,7 +3,10 @@ silverBerry.name = "CollabUtils2/SilverBerry" silverBerry.depth = -100 silverBerry.placements = { { - name = "default" + name = "default", + data = { + alwaysSpawn = false + } } } diff --git a/Loenn/lang/en_gb.lang b/Loenn/lang/en_gb.lang index 55cd09d..df40d00 100644 --- a/Loenn/lang/en_gb.lang +++ b/Loenn/lang/en_gb.lang @@ -40,6 +40,7 @@ entities.CollabUtils2/RainbowBerry.attributes.description.requires=The amount of # Silver Berry entities.CollabUtils2/SilverBerry.placements.name.default=Silver Berry +entities.CollabUtils2/SilverBerry.attributes.description.alwaysSpawn=If checked, the silver berry will always spawn, even if the player did not complete the map yet. # Silver Block entities.CollabUtils2/SilverBlock.placements.name.default=Silver Block diff --git a/everest.yaml b/everest.yaml index 893e974..c37af70 100644 --- a/everest.yaml +++ b/everest.yaml @@ -1,5 +1,5 @@ - Name: CollabUtils2 - Version: 1.10.13 + Version: 1.10.14 DLL: bin/Release/net452/CollabUtils2.dll Dependencies: - Name: Everest