void updateCrystalColor(CrystalColor color) { int crystal_id = (int)color; if (obtainCrystal.ContainsKey(color)) { crystalPlace [crystal_id].sprite2D = crystalColors [crystal_id]; } else { crystalPlace [crystal_id].sprite2D = crystalNotFound; } }
public override void Awake(Scene scene) { if ((int)color == -1) { Add(new CoreModeListener(this)); if ((scene as Level).CoreMode == Session.CoreModes.Cold) { color = CrystalColor.Blue; } else { color = CrystalColor.Red; } } orig_Awake(scene); }
// クリスタルを接続したときの処理 public void ConnectCrystal(CrystalColor crystalColor) { connectedNum++; // 馬を生成する spawner.Spawn(); // 青クリスタルを接続したらゲーム開始 if (crystalColor == CrystalColor.Blue) { // ゲーム開始 GameStart(); } else { // クリスタルをカウントする CountCrystal(); } }
public void addCrystal(CrystalColor color) { obtainedCrystal [color] = true; this.refreshCrystals(); }
public void ctor(EntityData data, Vector2 offset, CrystalColor color) { orig_ctor(data, offset, color); ID = data.ID; }
public extern void orig_ctor(EntityData data, Vector2 offset, CrystalColor color);
public patch_CrystalStaticSpinner(Vector2 position, bool attachToSolid, CrystalColor color) : base(position, attachToSolid, color) { // no-op. MonoMod ignores this - we only need this to make the compiler shut up. }
/// <summary> /// Search for a custom entity that matches the <see cref="EntityData.Name"/>.<br/> /// To register a custom entity, use <see cref="CustomEntityAttribute"/> or <see cref="Everest.Events.Level.OnLoadEntity"/>.<br/> /// <seealso href="https://github.com/EverestAPI/Resources/wiki/Custom-Entities-and-Triggers">Read More</seealso>. /// </summary> /// <param name="entityData"></param> /// <param name="level">The level to add the entity to.</param> /// <returns></returns> public static bool LoadCustomEntity(EntityData entityData, Level level) { LevelData levelData = level.Session.LevelData; Vector2 offset = new Vector2(levelData.Bounds.Left, levelData.Bounds.Top); if (Everest.Events.Level.LoadEntity(level, levelData, offset, entityData)) { return(true); } if (EntityLoaders.TryGetValue(entityData.Name, out EntityLoader loader)) { Entity loaded = loader(level, levelData, offset, entityData); if (loaded != null) { level.Add(loaded); return(true); } } if (entityData.Name == "everest/spaceController") { level.Add(new SpaceController()); return(true); } // The following entities have hardcoded "attributes." // Everest allows custom maps to set them. if (entityData.Name == "spinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustStaticSpinner(entityData, offset)); return(true); } CrystalColor color = CrystalColor.Blue; if (level.Session.Area.ID == 5) { color = CrystalColor.Red; } else if (level.Session.Area.ID == 6) { color = CrystalColor.Purple; } else if (level.Session.Area.ID == 10) { color = CrystalColor.Rainbow; } else if ("core".Equals(entityData.Attr("color"), StringComparison.InvariantCultureIgnoreCase)) { color = (CrystalColor)(-1); } else if (!Enum.TryParse(entityData.Attr("color"), true, out color)) { color = CrystalColor.Blue; } level.Add(new CrystalStaticSpinner(entityData, offset, color)); return(true); } if (entityData.Name == "trackSpinner") { if (level.Session.Area.ID == 10 || entityData.Bool("star")) { level.Add(new StarTrackSpinner(entityData, offset)); return(true); } else if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustTrackSpinner(entityData, offset)); return(true); } level.Add(new BladeTrackSpinner(entityData, offset)); return(true); } if (entityData.Name == "rotateSpinner") { if (level.Session.Area.ID == 10 || entityData.Bool("star")) { level.Add(new StarRotateSpinner(entityData, offset)); return(true); } else if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustRotateSpinner(entityData, offset)); return(true); } level.Add(new BladeRotateSpinner(entityData, offset)); return(true); } if (entityData.Name == "checkpoint" && entityData.Position == Vector2.Zero && !entityData.Bool("allowOrigin")) { // Workaround for mod levels with old versions of Ahorn containing a checkpoint at (0, 0): // Create the checkpoint and avoid the start position update in orig_Load. level.Add(new Checkpoint(entityData, offset)); return(true); } if (entityData.Name == "cloud") { patch_Cloud cloud = new Cloud(entityData, offset) as patch_Cloud; if (entityData.Has("small")) { cloud.Small = entityData.Bool("small"); } level.Add(cloud); return(true); } if (entityData.Name == "cobweb") { patch_Cobweb cobweb = new Cobweb(entityData, offset) as patch_Cobweb; if (entityData.Has("color")) { cobweb.OverrideColors = entityData.Attr("color")?.Split(',').Select(s => Calc.HexToColor(s)).ToArray(); } level.Add(cobweb); return(true); } if (entityData.Name == "movingPlatform") { patch_MovingPlatform platform = new MovingPlatform(entityData, offset) as patch_MovingPlatform; if (entityData.Has("texture")) { platform.OverrideTexture = entityData.Attr("texture"); } level.Add(platform); return(true); } if (entityData.Name == "sinkingPlatform") { patch_SinkingPlatform platform = new SinkingPlatform(entityData, offset) as patch_SinkingPlatform; if (entityData.Has("texture")) { platform.OverrideTexture = entityData.Attr("texture"); } level.Add(platform); return(true); } if (entityData.Name == "crumbleBlock") { patch_CrumblePlatform platform = new CrumblePlatform(entityData, offset) as patch_CrumblePlatform; if (entityData.Has("texture")) { platform.OverrideTexture = entityData.Attr("texture"); } level.Add(platform); return(true); } if (entityData.Name == "wire") { Wire wire = new Wire(entityData, offset); if (entityData.Has("color")) { wire.Color = entityData.HexColor("color"); } level.Add(wire); return(true); } if (!_LoadStrings.Contains(entityData.Name)) { Logger.Log(LogLevel.Warn, "LoadLevel", $"Failed loading entity {entityData.Name}"); } return(false); }
public void addCrystals(CrystalColor color) { crystals.addCrystal(color); }
// Called from LoadLevel, patched via MonoModRules.PatchLevelLoader public static bool LoadCustomEntity(EntityData entityData, Level level) { LevelData levelData = level.Session.LevelData; Vector2 offset = new Vector2(levelData.Bounds.Left, levelData.Bounds.Top); if (Everest.Events.Level.LoadEntity(level, levelData, offset, entityData)) { return(true); } // Everest comes with a few core utility entities out of the box. if (entityData.Name == "everest/spaceController") { level.Add(new SpaceController()); return(true); } if (entityData.Name == "everest/spaceControllerBlocker") { level.Add(new SpaceControllerBlocker()); return(true); } if (entityData.Name == "everest/flagTrigger") { level.Add(new FlagTrigger(entityData, offset)); return(true); } if (entityData.Name == "everest/changeInventoryTrigger") { level.Add(new ChangeInventoryTrigger(entityData, offset)); return(true); } if (entityData.Name == "everest/coreMessage") { level.Add(new CustomCoreMessage(entityData, offset)); return(true); } if (entityData.Name == "everest/memorial") { level.Add(new CustomMemorial(entityData, offset)); return(true); } if (entityData.Name == "everest/npc") { level.Add(new CustomNPC(entityData, offset, new EntityID(levelData.Name, entityData.ID))); return(true); } if (entityData.Name == "everest/dialogTrigger" || entityData.Name == "dialog/dialogtrigger" || entityData.Name == "cavern/dialogtrigger") { level.Add(new DialogCutsceneTrigger(entityData, offset, new EntityID(levelData.Name, entityData.ID))); return(true); } if (entityData.Name == "everest/crystalShatterTrigger" || entityData.Name == "outback/destroycrystalstrigger") { level.Add(new CrystalShatterTrigger(entityData, offset)); return(true); } if (entityData.Name == "everest/completeAreaTrigger" || entityData.Name == "outback/completeareatrigger") { level.Add(new CompleteAreaTrigger(entityData, offset)); return(true); } if (entityData.Name == "everest/lavaBlockerTrigger" || entityData.Name == "cavern/lavablockertrigger") { level.Add(new LavaBlockerTrigger(entityData, offset)); return(true); } if (entityData.Name == "everest/coreModeTrigger" || entityData.Name == "cavern/coremodetrigger") { level.Add(new CoreModeTrigger(entityData, offset)); return(true); } // The following entities have hardcoded "attributes." // Everest allows custom maps to set them. if (entityData.Name == "spinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustStaticSpinner(entityData, offset)); return(true); } CrystalColor color = CrystalColor.Blue; if (level.Session.Area.ID == 5) { color = CrystalColor.Red; } else if (level.Session.Area.ID == 6) { color = CrystalColor.Purple; } else if ("core".Equals(entityData.Attr("color"), StringComparison.InvariantCultureIgnoreCase)) { color = (CrystalColor)(-1); } else if (!Enum.TryParse(entityData.Attr("color"), true, out color)) { color = CrystalColor.Blue; } level.Add(new CrystalStaticSpinner(entityData, offset, color)); return(true); } if (entityData.Name == "trackSpinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustTrackSpinner(entityData, offset)); return(true); } level.Add(new BladeTrackSpinner(entityData, offset)); return(true); } if (entityData.Name == "rotateSpinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustRotateSpinner(entityData, offset)); return(true); } level.Add(new BladeRotateSpinner(entityData, offset)); return(true); } if (entityData.Name == "checkpoint" && entityData.Position == Vector2.Zero && !entityData.Bool("allowOrigin")) { // Workaround for mod levels with old versions of Ahorn containing a checkpoint at (0, 0): // Create the checkpoint and avoid the start position update in orig_Load. level.Add(new Checkpoint(entityData, offset)); return(true); } if (entityData.Name == "triggerSpikesOriginalUp") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Up)); return(true); } if (entityData.Name == "triggerSpikesOriginalDown") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Down)); return(true); } if (entityData.Name == "triggerSpikesOriginalLeft") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Left)); return(true); } if (entityData.Name == "triggerSpikesOriginalRight") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Right)); return(true); } if (entityData.Name == "darkChaserEnd") { level.Add(new BadelineOldsiteEnd(entityData, offset)); return(true); } if (entityData.Name == "cloud") { patch_Cloud cloud = new Cloud(entityData, offset) as patch_Cloud; if (entityData.Has("small")) { cloud.Small = entityData.Bool("small"); } level.Add(cloud); return(true); } if (entityData.Name == "cobweb") { patch_Cobweb cobweb = new Cobweb(entityData, offset) as patch_Cobweb; if (entityData.Has("color")) { cobweb.OverrideColor = entityData.HexColor("color"); } level.Add(cobweb); return(true); } if (entityData.Name == "movingPlatform") { patch_MovingPlatform platform = new MovingPlatform(entityData, offset) as patch_MovingPlatform; if (entityData.Has("texture")) { platform.OverrideTexture = entityData.Attr("texture"); } level.Add(platform); return(true); } if (entityData.Name == "sinkingPlatform") { patch_SinkingPlatform platform = new SinkingPlatform(entityData, offset) as patch_SinkingPlatform; if (entityData.Has("texture")) { platform.OverrideTexture = entityData.Attr("texture"); } level.Add(platform); return(true); } if (entityData.Name == "crumbleBlock") { patch_CrumblePlatform platform = new CrumblePlatform(entityData, offset) as patch_CrumblePlatform; if (entityData.Has("texture")) { platform.OverrideTexture = entityData.Attr("texture"); } level.Add(platform); return(true); } if (entityData.Name == "wire") { Wire wire = new Wire(entityData, offset); if (entityData.Has("color")) { wire.Color = entityData.HexColor("color"); } level.Add(wire); return(true); } return(false); }
public bool getCrystal(CrystalColor color) { return(obtainCrystal.ContainsKey(color)); }
public ChangeColorComponent(CrystalStaticSpinner spinner, CrystalColor newColor) : base(true, false) { this.spinner = spinner; this.newColor = newColor; }
public void addCrystal(CrystalColor color) { obtainCrystal [color] = true; this.reloadCrystals(); }
// Called from LoadLevel, patched via MonoModRules.PatchLevelLoader public static bool LoadCustomEntity(EntityData entityData, Level level) { LevelData levelData = level.Session.LevelData; Vector2 offset = new Vector2(levelData.Bounds.Left, levelData.Bounds.Top); // Everest comes with a few core utility entities out of the box. if (entityData.Name == "levelFlagTrigger") { level.Add(new LevelFlagTrigger(entityData, offset)); return(true); } if (entityData.Name == "customCoreMessage") { level.Add(new CustomCoreMessage(entityData, offset)); return(true); } if (entityData.Name == "customMemorial") { level.Add(new CustomMemorial(entityData, offset)); return(true); } // The following entities have hardcoded "attributes." // Everest allows custom maps to set them. if (entityData.Name == "spinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustStaticSpinner(entityData, offset)); return(true); } CrystalColor color = CrystalColor.Blue; if (level.Session.Area.ID == 5) { color = CrystalColor.Red; } else if (level.Session.Area.ID == 6) { color = CrystalColor.Purple; } else if (!Enum.TryParse(entityData.Attr("color"), true, out color)) { color = CrystalColor.Blue; } level.Add(new CrystalStaticSpinner(entityData, offset, color)); return(true); } if (entityData.Name == "trackSpinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustTrackSpinner(entityData, offset)); return(true); } level.Add(new BladeTrackSpinner(entityData, offset)); return(true); } if (entityData.Name == "rotateSpinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustRotateSpinner(entityData, offset)); return(true); } level.Add(new BladeRotateSpinner(entityData, offset)); return(true); } return(Everest.Events.Level.LoadEntity(level, levelData, offset, entityData)); }
public void addCrystal(CrystalColor color) { crystalPanel.addCrystal(color); }
// Called from LoadLevel, patched via MonoModRules.PatchLevelLoader public static bool LoadCustomEntity(EntityData entityData, Level level) { LevelData levelData = level.Session.LevelData; Vector2 offset = new Vector2(levelData.Bounds.Left, levelData.Bounds.Top); if (Everest.Events.Level.LoadEntity(level, levelData, offset, entityData)) { return(true); } // Everest comes with a few core utility entities out of the box. if (entityData.Name == "everest/spaceController") { level.Add(new SpaceController()); return(true); } if (entityData.Name == "everest/spaceControllerBlocker") { level.Add(new SpaceControllerBlocker()); return(true); } if (entityData.Name == "everest/flagTrigger") { level.Add(new FlagTrigger(entityData, offset)); return(true); } if (entityData.Name == "everest/coreMessage") { level.Add(new CustomCoreMessage(entityData, offset)); return(true); } if (entityData.Name == "everest/memorial") { level.Add(new CustomMemorial(entityData, offset)); return(true); } // The following entities have hardcoded "attributes." // Everest allows custom maps to set them. if (entityData.Name == "spinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustStaticSpinner(entityData, offset)); return(true); } CrystalColor color = CrystalColor.Blue; if (level.Session.Area.ID == 5) { color = CrystalColor.Red; } else if (level.Session.Area.ID == 6) { color = CrystalColor.Purple; } else if ("core".Equals(entityData.Attr("color"), StringComparison.InvariantCultureIgnoreCase)) { color = (CrystalColor)(-1); } else if (!Enum.TryParse(entityData.Attr("color"), true, out color)) { color = CrystalColor.Blue; } level.Add(new CrystalStaticSpinner(entityData, offset, color)); return(true); } if (entityData.Name == "trackSpinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustTrackSpinner(entityData, offset)); return(true); } level.Add(new BladeTrackSpinner(entityData, offset)); return(true); } if (entityData.Name == "rotateSpinner") { if (level.Session.Area.ID == 3 || (level.Session.Area.ID == 7 && level.Session.Level.StartsWith("d-")) || entityData.Bool("dust")) { level.Add(new DustRotateSpinner(entityData, offset)); return(true); } level.Add(new BladeRotateSpinner(entityData, offset)); return(true); } if (entityData.Name == "checkpoint" && entityData.Position == Vector2.Zero && !entityData.Bool("allowOrigin")) { // Workaround for mod levels with old versions of Ahorn containing a checkpoint at (0, 0): // Create the checkpoint and avoid the start position update in orig_Load. level.Add(new Checkpoint(entityData, offset)); return(true); } if (entityData.Name == "triggerSpikesOriginalUp") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Up)); return(true); } if (entityData.Name == "triggerSpikesOriginalDown") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Down)); return(true); } if (entityData.Name == "triggerSpikesOriginalLeft") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Left)); return(true); } if (entityData.Name == "triggerSpikesOriginalRight") { level.Add(new TriggerSpikesOriginal(entityData, offset, TriggerSpikesOriginal.Directions.Right)); return(true); } if (entityData.Name == "darkChaserEnd") { level.Add(new BadelineOldsiteEnd(entityData, offset)); return(true); } if (entityData.Name == "cloud") { patch_Cloud cloud = new Cloud(entityData, offset) as patch_Cloud; if (entityData.Has("small")) { cloud.Small = entityData.Bool("small"); } level.Add(cloud); return(true); } return(false); }
private void CrystalStaticSpinner_ctor(On.Celeste.CrystalStaticSpinner.orig_ctor_Vector2_bool_CrystalColor orig, CrystalStaticSpinner self, Vector2 position, bool attachToSolid, CrystalColor color) { if (Settings.SimplifiedGraphics) { color = CrystalColor.Blue; } orig(self, position, attachToSolid, color); }
private static void ChangeColor(On.Celeste.CrystalStaticSpinner.orig_ctor_EntityData_Vector2_CrystalColor orig, CrystalStaticSpinner self, EntityData data, Vector2 offset, CrystalColor color) { var savedColor = GetColorFromSession(); if (savedColor != null) { orig(self, data, offset, (CrystalColor)savedColor); } else { orig(self, data, offset, color); } self.SetExtendedDataValue("color", (CrystalColor?)color); }