static void Postfix(byte HKHMBLJFLMC, MessageReader ALMCIJKELCP) { byte packetId = HKHMBLJFLMC; MessageReader reader = ALMCIJKELCP; switch (packetId) { case (byte)RPC.CustomRPC.SetEngineer: byte engineerId = reader.ReadByte(); PlayerControl engineer = PlayerTools.getPlayerFromId(engineerId); if (engineer != null) { new EngineerPlayer(engineer); } else { System.Console.WriteLine("Invalid engineer id provided inside HandleRpc..."); } break; case (byte)RPC.CustomRPC.FixLights: SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; break; } }
// Create all systems public void initializeSystems() { gravSystem = new GravitySystem(level); systems.Add(gravSystem); moveSystem = new MovementSystem(level); systems.Add(moveSystem); playerSystem = new PlayerMovementSystem(level); systems.Add(playerSystem); visSystem = new VisionOrbSystem(level); systems.Add(visSystem); colSystem = new CollisionDetectionSystem(level); systems.Add(colSystem); drawSystem = new DrawSystem(level.g, level); systems.Add(drawSystem); healthSystem = new HealthSystem(level); systems.Add(healthSystem); animSystem = new AnimationSystem(level); systems.Add(animSystem); timerSystem = new TimerSystem(level); systems.Add(timerSystem); timedShooterSystem = new TimedShooterSystem(level); systems.Add(timedShooterSystem); squishSystem = new SquishSystem(level); systems.Add(squishSystem); inputSystem = new InputSystem(level); systems.Add(inputSystem); scrEdgeSystem = new ScreenEdgeSystem(level); systems.Add(scrEdgeSystem); slSystem = new SwitchListenerSystem(level); systems.Add(slSystem); switchSystem = new SwitchSystem(level); systems.Add(switchSystem); spSystem = new SimplePowerUpSystem(level); systems.Add(spSystem); simpEnemySystem = new SimpleEnemyAISystem(level); systems.Add(simpEnemySystem); weapSystem = new PlayerWeaponSystem(level); systems.Add(weapSystem); bkgPosSystem = new BackgroundPositionSystem(level); systems.Add(bkgPosSystem); debugSystem = new DebugSystem(level); systems.Add(debugSystem); movPlatSystem = new MovingPlatformSystem(level); systems.Add(movPlatSystem); grapSystem = new GrappleSystem(level); systems.Add(grapSystem); pushSystem = new PushableSystem(level); systems.Add(pushSystem); velZeroSystem = new VelToZeroSystem(level); systems.Add(velZeroSystem); smushSystem = new SmushSystem(level); systems.Add(smushSystem); signSystem = new SignSystem(level); systems.Add(signSystem); }
void Awake() { worldContainer = GameObject.FindGameObjectWithTag("World"); playerCamera = GameObject.FindGameObjectWithTag("PlayerCamera"); player = FindObjectOfType <Player>(); spawner = GetComponent <Spawner>(); enemySpawner = GetComponent <EnemySpawner>(); switchSystem = GetComponent <SwitchSystem>(); collectableManager = GetComponent <CollectableManager>(); }
private static bool FixLights(SwitchSystem lights) { var writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.FixLights, SendOption.Reliable, -1); AmongUsClient.Instance.FinishRpcImmediately(writer); lights.ActualSwitches = lights.ExpectedSwitches; return(false); }
public bool RepairLight() { if (!CanRepair()) { return(false); } _repairUsed = true; SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; WriteImmediately(RPC.FixLights); return(false); }
public static bool Prefix(ref float __result, ShipStatus __instance, [HarmonyArgument(0)] GameData.PlayerInfo player) { ISystemType systemType = __instance.Systems.ContainsKey(SystemTypes.Electrical) ? __instance.Systems[SystemTypes.Electrical] : null; if (systemType == null) { return(true); } SwitchSystem switchSystem = systemType.TryCast <SwitchSystem>(); if (switchSystem == null) { return(true); } float num = (float)switchSystem.Value / 255f; if (player == null || player.IsDead) // IsDead { __result = __instance.MaxLightRadius; } else if (player.IsImpostor) // IsImpostor { __result = __instance.MaxLightRadius * PlayerControl.GameOptions.ImpostorLightMod; } else if (Lighter.lighter != null && Lighter.lighter.PlayerId == player.PlayerId && Lighter.lighterTimer > 0f) // if player is Lighter and Lighter has his ability active { __result = Mathf.Lerp(__instance.MaxLightRadius * Lighter.lighterModeLightsOffVision, __instance.MaxLightRadius * Lighter.lighterModeLightsOnVision, num); } else if (Trickster.trickster != null && Trickster.lightsOutTimer > 0f) { float lerpValue = 1f; if (Trickster.lightsOutDuration - Trickster.lightsOutTimer < 0.5f) { lerpValue = Mathf.Clamp01((Trickster.lightsOutDuration - Trickster.lightsOutTimer) * 2); } else if (Trickster.lightsOutTimer < 0.5) { lerpValue = Mathf.Clamp01(Trickster.lightsOutTimer * 2); } __result = Mathf.Lerp(__instance.MinLightRadius, __instance.MaxLightRadius, 1 - lerpValue) * PlayerControl.GameOptions.CrewLightMod; // Instant lights out? Maybe add a smooth transition? } else { __result = Mathf.Lerp(__instance.MinLightRadius, __instance.MaxLightRadius, num) * PlayerControl.GameOptions.CrewLightMod; } return(false); }
static bool Prefix(MapRoom __instance) { if (EngineerSettings.Engineer != null && EngineerSettings.Engineer.PlayerId == PlayerControl.LocalPlayer.PlayerId && !PlayerControl.LocalPlayer.Data.IsDead) { if (!EngineerSettings.repairUsed && EngineerSettings.sabotageActive) { EngineerSettings.repairUsed = true; SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.FixLights, Hazel.SendOption.None, -1); AmongUsClient.Instance.FinishRpcImmediately(writer); } return(false); } return(true); }
static bool Prefix(MapRoom __instance) { if (PlayerControl.LocalPlayer.isPlayerRole("Engineer")) { if (!PlayerControl.LocalPlayer.getModdedControl().UsedAbility&& Main.Logic.sabotageActive && !PlayerControl.LocalPlayer.Data.IsDead) { PlayerControl.LocalPlayer.getModdedControl().UsedAbility = true; SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.FixLights, Hazel.SendOption.None, -1); AmongUsClient.Instance.FinishRpcImmediately(writer); } return(false); } return(true); }
public static bool Prefix(ShipStatus __instance, [HarmonyArgument(0)] GameData.PlayerInfo player, ref float __result) { if (player == null || player.IsDead) { __result = __instance.MaxLightRadius; return(false); } if (player.IsImpostor || player._object.Is(RoleEnum.Glitch)) { __result = __instance.MaxLightRadius * PlayerControl.GameOptions.ImpostorLightMod; if (player.Object.Is(ModifierEnum.ButtonBarry)) { if (Modifier.GetModifier <ButtonBarry>(PlayerControl.LocalPlayer).ButtonUsed) { __result *= 0.5f; } } return(false); } SwitchSystem switchSystem = __instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); float lightPercentage = switchSystem.Value / 255f; if (player._object.Is(ModifierEnum.Torch)) { lightPercentage = 1; } __result = Mathf.Lerp(__instance.MinLightRadius, __instance.MaxLightRadius, lightPercentage) * PlayerControl.GameOptions.CrewLightMod; if (player.Object.Is(ModifierEnum.ButtonBarry)) { if (Modifier.GetModifier <ButtonBarry>(PlayerControl.LocalPlayer).ButtonUsed) { __result *= 0.5f; } } if (player.Object.Is(RoleEnum.Covert) && Role.GetRole <Covert>(PlayerControl.LocalPlayer).IsCovert) { __result *= 0.5f; } return(false); }
public static float GetNeutralLightRadius(ShipStatus shipStatus, bool isImpostor) { if (SubmergedCompatibility.Loaded && shipStatus.Type == SubmergedCompatibility.SUBMERGED_MAP_TYPE) { return(SubmergedCompatibility.GetSubmergedNeutralLightRadius(isImpostor)); } if (isImpostor) { return(shipStatus.MaxLightRadius * PlayerControl.GameOptions.ImpostorLightMod); } SwitchSystem switchSystem = shipStatus.Systems[SystemTypes.Electrical].TryCast <SwitchSystem>(); float lerpValue = switchSystem.Value / 255f; return(Mathf.Lerp(shipStatus.MinLightRadius, shipStatus.MaxLightRadius, lerpValue) * PlayerControl.GameOptions.CrewLightMod); }
static bool Prefix(MapRoom __instance) { if (EngineerPlayer.IsPlayerEngineer(PlayerControl.LocalPlayer) && EngineerPlayer.GetEngineerFromPlayer(PlayerControl.LocalPlayer).canRepair&& EngineerRole.sabotageActive) { System.Console.WriteLine(EngineerPlayer.GetEngineerFromPlayer(PlayerControl.LocalPlayer).canRepair); EngineerPlayer.GetEngineerFromPlayer(PlayerControl.LocalPlayer).lastRepair = DateTime.UtcNow; SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)RPC.CustomRPC.FixLights, Hazel.SendOption.None, -1); AmongUsClient.Instance.FinishRpcImmediately(writer); return(false); } else if (EngineerPlayer.IsPlayerEngineer(PlayerControl.LocalPlayer)) { return(false); } return(true); }
/// <summary> /// 初始化 /// </summary> public void Initinal() { //辅助系统 m_TipsSystem = new TipsSystem(this); m_SwitchSystem = new SwitchSystem(this); m_arsenalSystem = new ArsenalSystem(this); //界面 m_tipsPanel = new TipsPanel(); m_TipsSystem.Initialize(); m_arsenalSystem.Initialize(); //第一次打开才进行加载以下界面 if (m_player == null) { m_mainPanel = new MainPanel(this); m_mainMenuPanel = new MainMenuPanel(this); m_mainMenuRightPanel = new MainMenuRightPanel(this); m_readAssetPanel = new ReadAssetPanel(this); m_readAssetRightPanel = new ReadAssetRightPanel(this); m_ChooseRolePanel = new ChooseRolePanel(this); m_gameMenuRightPanel = new GameMenuRightPanel(this); //界面状态系统初始化 m_SwitchSystem.Initialize(); //注册界面状态 AddUIState(); //主界面初始化 m_mainPanel.Begin(); } else { //进入游戏后加载兵营系统 以及 UI m_campSystem = new CampSystem(this); m_statePanel = new GameStatePanel(this); //初始化 m_campSystem.Initialize(); m_statePanel.Begin(); } }
static void Postfix(byte HKHMBLJFLMC, MessageReader ALMCIJKELCP) { MessageReader reader = ALMCIJKELCP; switch (HKHMBLJFLMC /*Packet ID*/) { // ---------------------- Set special roles ---------------------- case (byte) RPC.SetRole: byte roleId = reader.ReadByte(); byte playerId = reader.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) if (player.PlayerId == playerId) switch (roleId) { case var value when value == Detective.RoleID: AddSpecialRole(new Detective(player)); break; case var value when value == Doctor.RoleID: AddSpecialRole(new Doctor(player)); break; case var value when value == Engineer.RoleID: AddSpecialRole(new Engineer(player)); break; case var value when value == Maniac.RoleID: AddSpecialRole(new Maniac(player)); break; case var value when value == Seer.RoleID: AddSpecialRole(new Seer(player)); break; case var value when value == Tracker.RoleID: AddSpecialRole(new Tracker(player)); break; case var value when value == Ninja.RoleID: AddSpecialRole(new Ninja(player)); break; case var value when value == Nocturnal.RoleID: AddSpecialRole(new Nocturnal(player)); break; case var value when value == Pathfinder.RoleID: AddSpecialRole(new Pathfinder(player)); break; } break; // -------------- Happenings related to special roles -------------- case (byte)RPC.SetProtected: byte protectedId = reader.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) if (player.PlayerId == protectedId) GetSpecialRole<Doctor>().protectedPlayer = player; break; case (byte)RPC.ShieldBreak: Doctor doctor = GetSpecialRole<Doctor>(); PlayerControl protectedPlayer = doctor.protectedPlayer; if (protectedPlayer != null) { protectedPlayer.myRend.material.SetColor("_VisorColor", Palette.VisorColor); protectedPlayer.myRend.material.SetFloat("_Outline", 0f); } doctor.protectedPlayer = null; break; case (byte) RPC.AttemptShield: Doctor doctorShieldAttempt = GetSpecialRole<Doctor>(); if (doctorShieldAttempt.player != null) { doctorShieldAttempt.AttemptKillShielded(); } break; case (byte) RPC.DetectiveKill: var killerid = reader.ReadByte(); var targetid = reader.ReadByte(); PlayerControl killer = PlayerTools.GetPlayerById(killerid); PlayerControl target = PlayerTools.GetPlayerById(targetid); killer.MurderPlayer(target); break; case (byte)RPC.ManiacWin: Maniac maniac = GetSpecialRole<Maniac>(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player == maniac.player) continue; player.RemoveInfected(); player.Die(DeathReason.Exile); player.Data.IsDead = true; player.Data.IsImpostor = false; } maniac.player.Revive(); maniac.player.Data.IsDead = false; maniac.player.Data.IsImpostor = true; break; case (byte) RPC.NinjaDoubleKill: var ninjaId = reader.ReadByte(); var doubleKillId = reader.ReadByte(); PlayerControl ninjaDoubleKill = PlayerTools.GetPlayerById(ninjaId); PlayerControl targetDoubleKill = PlayerTools.GetPlayerById(doubleKillId); ninjaDoubleKill.MurderPlayer(targetDoubleKill); break; case (byte)RPC.SetTrackerMark: Tracker tracker1 = GetSpecialRole<Tracker>(); SystemTypes system = (SystemTypes) reader.ReadInt32(); tracker1.markedSystem = system; break; case (byte)RPC.TrapSuccessful: if (TryGetSpecialRole(PlayerControl.LocalPlayer.PlayerId, out Tracker tracker2)) { byte roomId = reader.ReadByte(); tracker2.TrapSuccessful((SystemTypes) roomId); } break; // --------------------------- Other --------------------------- case (byte)RPC.FixLights: SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast<SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; break; case (byte)RPC.SetLocalPlayers: Crew.Clear(); localPlayer = PlayerControl.LocalPlayer; var localPlayerBytes = reader.ReadBytesAndSize(); foreach (byte id in localPlayerBytes) foreach (PlayerControl player in PlayerControl.AllPlayerControls) if (player.PlayerId == id) Crew.Add(player); break; case (byte) RPC.SetInfected: break; case (byte) RPC.ResetVariables: List<Role> assignedRoles = AssignedSpecialRoles.Values.ToList(); foreach (Role r in assignedRoles) { r.ClearSettings(); } ResetValues(); break; } }
public static void engineerFixLights() { SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; }
void Awake() { activateSwitchListener = new UnityAction(SwitchActivateded); switchSystem = GetComponent <SwitchSystem>(); }
static void Postfix(byte HKHMBLJFLMC, MessageReader ALMCIJKELCP) { byte packetId = HKHMBLJFLMC; MessageReader reader = ALMCIJKELCP; switch (packetId) { case (byte)CustomRPC.AttemptSound: BreakShield(false); break; case (byte)CustomRPC.FixLights: SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; break; case (byte)CustomRPC.SetLocalPlayers: localPlayers.Clear(); localPlayer = PlayerControl.LocalPlayer; var localPlayerBytes = ALMCIJKELCP.ReadBytesAndSize(); foreach (byte id in localPlayerBytes) { foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == id) { localPlayers.Add(player); } } } break; case (byte)CustomRPC.ResetVaribles: Main.Config.SetConfigSettings(); Main.Logic.AllModPlayerControl.Clear(); killedPlayers.Clear(); List <PlayerControl> crewmates = PlayerControl.AllPlayerControls.ToArray().ToList(); foreach (PlayerControl plr in crewmates) { Main.Logic.AllModPlayerControl.Add(new ModPlayerControl { PlayerControl = plr, Role = "Impostor", UsedAbility = false, LastAbilityTime = null, Immortal = false }); } crewmates.RemoveAll(x => x.Data.IsImpostor); foreach (PlayerControl plr in crewmates) { plr.getModdedControl().Role = "Crewmate"; } break; case (byte)CustomRPC.SetMedic: byte MedicId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == MedicId) { player.getModdedControl().Role = "Medic"; } } break; case (byte)CustomRPC.SetProtected: byte ProtectedId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == ProtectedId) { player.getModdedControl().Immortal = true; } } break; case (byte)CustomRPC.SetOfficer: byte OfficerId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == OfficerId) { player.getModdedControl().Role = "Officer"; } } break; case (byte)CustomRPC.OfficerKill: var killerid = ALMCIJKELCP.ReadByte(); var targetid = ALMCIJKELCP.ReadByte(); PlayerControl killer = PlayerTools.getPlayerById(killerid); PlayerControl target = PlayerTools.getPlayerById(targetid); killer.MurderPlayer(target); if (target.isPlayerImmortal()) { BreakShield(false); } break; case (byte)CustomRPC.SetEngineer: byte EngineerId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == EngineerId) { player.getModdedControl().Role = "Engineer"; } } break; case (byte)CustomRPC.SetJoker: byte JokerId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == JokerId) { player.getModdedControl().Role = "Joker"; } } break; case (byte)CustomRPC.JokerWin: foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (!player.isPlayerRole("Joker")) { player.RemoveInfected(); player.Die(DeathReason.Exile); player.Data.IsDead = true; player.Data.IsImpostor = false; } } PlayerControl joker = Main.Logic.getRolePlayer("Joker").PlayerControl; joker.Revive(); joker.Data.IsDead = false; joker.Data.IsImpostor = true; break; } }
static void Postfix(byte HKHMBLJFLMC, MessageReader ALMCIJKELCP) { byte packetId = HKHMBLJFLMC; MessageReader reader = ALMCIJKELCP; switch (packetId) { case (byte)CustomRPC.ShieldBreak: if (MedicSettings.Protected != null) { MedicSettings.Protected.myRend.material.SetColor("_VisorColor", Palette.VisorColor); MedicSettings.Protected.myRend.material.SetFloat("_Outline", 0f); } MedicSettings.Protected = null; break; case (byte)CustomRPC.FixLights: SwitchSystem switchSystem = ShipStatus.Instance.Systems[SystemTypes.Electrical].Cast <SwitchSystem>(); switchSystem.ActualSwitches = switchSystem.ExpectedSwitches; break; case (byte)CustomRPC.SetLocalPlayers: ConsoleTools.Info("Setting Local Players..."); localPlayers.Clear(); localPlayer = PlayerControl.LocalPlayer; var localPlayerBytes = ALMCIJKELCP.ReadBytesAndSize(); foreach (byte id in localPlayerBytes) { foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == id) { localPlayers.Add(player); } } } break; case (byte)RPC.SetInfected: { ConsoleTools.Info("set infected."); break; } case (byte)CustomRPC.ResetVaribles: { MedicSettings.ClearSettings(); OfficerSettings.ClearSettings(); EngineerSettings.ClearSettings(); JokerSettings.ClearSettings(); MedicSettings.SetConfigSettings(); OfficerSettings.SetConfigSettings(); EngineerSettings.SetConfigSettings(); JokerSettings.SetConfigSettings(); killedPlayers.Clear(); break; } case (byte)CustomRPC.SetMedic: { ConsoleTools.Info("Medic Set Through RPC!"); byte MedicId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == MedicId) { MedicSettings.Medic = player; } } break; } case (byte)CustomRPC.SetProtected: { byte ProtectedId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == ProtectedId) { MedicSettings.Protected = player; } } break; } case (byte)CustomRPC.SetOfficer: { ConsoleTools.Info("Officer Set Through RPC!"); byte OfficerId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == OfficerId) { OfficerSettings.Officer = player; } } break; } case (byte)CustomRPC.OfficerKill: { var killerid = ALMCIJKELCP.ReadByte(); var targetid = ALMCIJKELCP.ReadByte(); PlayerControl killer = PlayerTools.getPlayerById(killerid); PlayerControl target = PlayerTools.getPlayerById(targetid); killer.MurderPlayer(target); break; } case (byte)CustomRPC.SetEngineer: { ConsoleTools.Info("Engineer Set Through RPC!"); byte EngineerId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == EngineerId) { EngineerSettings.Engineer = player; } } break; } case (byte)CustomRPC.SetJoker: { ConsoleTools.Info("Joker Set Through RPC!"); byte JokerId = ALMCIJKELCP.ReadByte(); foreach (PlayerControl player in PlayerControl.AllPlayerControls) { if (player.PlayerId == JokerId) { JokerSettings.Joker = player; } } break; } case (byte)CustomRPC.JokerWin: foreach (PlayerControl player in PlayerControl.AllPlayerControls) { player.RemoveInfected(); player.Die(DeathReason.Exile); player.Data.IsDead = true; player.Data.IsImpostor = false; } JokerSettings.Joker.Revive(); JokerSettings.Joker.Data.IsDead = false; JokerSettings.Joker.Data.IsImpostor = true; break; } }