private float getNumericInput(float i_MaximumValue, string i_AskUserMsg) { string userInput; float numericInput = 0f; bool isValid = false; do { Console.Write(i_AskUserMsg); userInput = Console.ReadLine(); try { if (i_AskUserMsg == k_PhoneNumberMsg) { numericInput = LogicUtils.NumericValueValidation(userInput); } else { numericInput = LogicUtils.NumericValueValidation(userInput, i_MaximumValue); } isValid = true; } catch (Exception exception) { Console.WriteLine(exception.Message); } }while (!isValid); return(numericInput); }
public ToggleTricksForm(LogicMode logicMode, string userLogicFilename, IEnumerable <string> tricksEnabled) { InitializeComponent(); Result = tricksEnabled.ToHashSet(); LogicFile = LogicUtils.ReadRulesetFromResources(logicMode, userLogicFilename); Write_Tricks(); }
public ToggleTricksForm(LogicMode logicMode, string userLogicFilename, IEnumerable <string> tricksEnabled) { InitializeComponent(); Result = tricksEnabled.ToList(); var lines = LogicUtils.ReadRulesetFromResources(logicMode, userLogicFilename); var itemList = LogicUtils.PopulateItemListFromLogicData(lines); var y = 9; var deltaY = 23; var tricks = itemList.Where(io => io.IsTrick); foreach (var itemObject in tricks.OrderBy(io => io.Name)) { var cTrick = new CheckBox(); cTrick.Tag = itemObject; cTrick.Checked = tricksEnabled.Contains(itemObject.Name); cTrick.Text = itemObject.Name; TooltipBuilder.SetTooltip(cTrick, itemObject.TrickTooltip); cTrick.Location = new Point(9, y); cTrick.Size = new Size(pTricks.Width - 50, deltaY); cTrick.CheckedChanged += cTrick_CheckedChanged; pTricks.Controls.Add(cTrick); y += deltaY; } }
public async Task AllianceMemberEntry(MemoryStream stream, int order) { var player = await Resources.PlayerCache.GetPlayer(AccountId); await stream.WriteLongAsync(AccountId); // Avatar Id await stream.WriteStringAsync(null); // FacebookId await stream.WriteStringAsync(player.Name); // Name await stream.WriteIntAsync(Role); // Role await stream.WriteIntAsync(player.ExpLevel); // Exp Level await stream.WriteIntAsync(LogicUtils.GetLeagueByScore(Score)); // League Type await stream.WriteIntAsync(Score); // Score await stream.WriteIntAsync(Donations); // Donations await stream.WriteIntAsync(DonationsReceived); // Donations Received await stream.WriteIntAsync(order); // Order await stream.WriteIntAsync(order); // Previous Order stream.WriteByte(0); // IsNewMember stream.WriteByte(1); // HasHomeId await stream.WriteLongAsync(AccountId); // Home Id }
internal void BulletHit(Collider hitObject, Vector3 bulletForward) { if (hitObject == null) { return; } BodyPart hitBodyPart = hitObject.GetComponent <BodyPart>(); if (hitBodyPart != null && this.shooter != null) { bool isPlayerWeapon = this.shooter.CompareTag("Player"); if (LogicUtils.CanBeHitByBullet(hitBodyPart, isPlayerWeapon)) { hitBodyPart.TakeDamage(-this.damagePerBullet, this); } } else { BaseEntity hitEntity = hitObject.GetComponent <BaseEntity>(); if (hitEntity) { bool isPlayerWeapon = this.shooter.CompareTag("Player"); if (LogicUtils.CanBeHitByBullet(hitEntity, isPlayerWeapon)) { hitEntity.ChangeHealth(-this.damagePerBullet, this); } } } }
public void SetSender(Player player) { SenderName = player.Name; SenderAvatarId = player.AccountId; SenderLevel = player.ExpLevel; SenderLeagueType = LogicUtils.GetLeagueByScore(player.Score); }
private Vehicle createNewVehicle(string i_UserPlateNumber) { bool isVehicleTypeValid = false; Vehicle newVehicle; VehicleFactory.eVehicleType newVehicleType = VehicleFactory.eVehicleType.FuelCar; string userChoice; Console.WriteLine("{0}Please Enter the following information: {0}", Environment.NewLine); this.printMultiChoiceList(VehicleFactory.VehicleTypeKey, Enum.GetNames(typeof(VehicleFactory.eVehicleType))); this.printEnterChoiceMsg(); do { try { userChoice = Console.ReadLine(); newVehicleType = LogicUtils.EnumValidation <VehicleFactory.eVehicleType>(userChoice, VehicleFactory.VehicleTypeKey); isVehicleTypeValid = true; } catch (Exception exception) { Console.WriteLine(exception.Message); } }while (!isVehicleTypeValid); newVehicle = VehicleFactory.CreateVehicle(i_UserPlateNumber, newVehicleType); this.setVehicleInfo(newVehicle, newVehicleType); return(newVehicle); }
private void OnTriggerEnter(Collider other) { if (LogicUtils.IsShootable(other) == false || LogicUtils.CanBeHitByBullet(other, _isPlayerWeapon) == false) { return; } this.BulletHitSomething(other, shootLocation); }
public virtual void Stop() { if (LogicUtils.NullCheck(this._navMeshAgent, this) == false) { return; } this._navMeshAgent.enabled = false; }
private void Write_Tricks() { pTricks.Controls.Clear(); var itemList = LogicUtils.PopulateItemListFromLogicData(LogicFile); var y = 9; var deltaY = 23; var tricks = itemList.Where(io => io.IsTrick); var categories = tricks.Select(io => string.IsNullOrWhiteSpace(io.TrickCategory) ? "Misc" : io.TrickCategory).Distinct().ToList(); if (categories.Count > 1) { foreach (var i in tricks) { i.TrickCategory = string.IsNullOrWhiteSpace(i.TrickCategory) ? "Misc" : i.TrickCategory; } tricks = tricks.OrderBy(io => categories.IndexOf(io.TrickCategory)); } string currentCategory = string.Empty; foreach (var itemObject in tricks) { if (!itemObject.Name.ToLower().Contains(txtSearch.Text.ToLower())) { continue; } if (itemObject.TrickCategory != null && currentCategory != itemObject.TrickCategory) { currentCategory = itemObject.TrickCategory; var cCategory = new InvertIndeterminateCheckBox(); cCategory.Text = currentCategory + ":"; cCategory.Location = new Point(9, y); cCategory.Size = new Size(pTricks.Width - 50, deltaY); cCategory.CheckStateChanged += cTrick_CheckStateChanged; cCategory.Tag = tricks .Where(io => io.TrickCategory == currentCategory && io.Name.ToLower().Contains(txtSearch.Text.ToLower())) .Select(io => io.Name) .ToHashSet(); pTricks.Controls.Add(cCategory); y += deltaY; } var cTrick = new CheckBox(); cTrick.Tag = new HashSet <string> { itemObject.Name }; cTrick.Checked = Result.Contains(itemObject.Name); cTrick.Text = itemObject.Name; TooltipBuilder.SetTooltip(cTrick, itemObject.TrickTooltip); cTrick.Location = new Point(18, y); cTrick.Size = new Size(pTricks.Width - 50, deltaY); cTrick.CheckStateChanged += cTrick_CheckStateChanged; pTricks.Controls.Add(cTrick); y += deltaY; } CalculateCategoryCheckboxes(); }
private void OnTriggerExit(Collider other) { if (LogicUtils.IsPlayer(other) == false) { return; } StopSpawning(); }
public BattleReportStreamEntry GetBattleReportStreamEntry(long replayId) { var random = new Random(); var attackerReward = random.Next(10, 25); Attacker.Score += attackerReward; return(new BattleReportStreamEntry { MajorVersion = 5, Build = 2, ContentVersion = 4, CreationDateTime = DateTime.Now, IsRevengeUsed = true, // Revenge is not supported atm SenderAvatarId = Defender.AccountId, SenderName = Defender.Name, SenderLevel = Defender.ExpLevel, SenderLeagueType = LogicUtils.GetLeagueByScore(Defender.Score), ShardId = 0, ReplayId = replayId, BattleLogJson = JsonConvert.SerializeObject(new BattleLog { // Here we use random values Loot = new[] { new[] { 3000001, random.Next(1000, 100000) }, new[] { 3000002, random.Next(1000, 100000) } }, Units = new[] { new[] { 4000000, random.Next(10, 50) }, new[] { 4000001, random.Next(10, 50) }, new[] { 4000002, random.Next(10, 50) }, new[] { 4000003, random.Next(10, 50) }, new[] { 4000004, random.Next(10, 50) }, new[] { 4000005, random.Next(10, 50) }, new[] { 4000006, random.Next(10, 50) }, new[] { 4000007, random.Next(10, 50) } }, Levels = new int[0][], Spells = new int[0][], Stats = new BattleLogStats { TownHallDestroyed = true, DestructionPercentage = random.Next(0, 100), AllianceName = "RetroClash", AllianceUsed = false, AttackerScore = attackerReward, BattleEnded = true, BattleTime = 1, DefenderScore = random.Next(-30, -15), HomeId = new[] { 0, 1 }, OriginalScore = Attacker.Score } }) }); }
/// <summary> /// Performs the execution of the <see cref="SpeedUpConstructionCommand"/> on the specified <see cref="Avatar"/>. /// </summary> /// <param name="level"><see cref="Level"/> on which to perform the <see cref="SpeedUpConstructionCommand"/>.</param> /// <exception cref="ArgumentNullException"><paramref name="level"/> is null.</exception> /// <exception cref="ArgumentNullException"><paramref name="level.Village"/> is null.</exception> public override void Execute(Level level) { ThrowIfLevelNull(level); ThrowIfLevelVillageNull(level); var village = level.Village; var vilobj = village.VillageObjects[BuildableGameID]; if (vilobj == null) { level.Logs.Log($"Could not find village object with game ID {BuildableGameID}."); } else { if (vilobj is Building) { var building = (Building)vilobj; if (!building.IsConstructing) { level.Logs.Log($"Tried to speed the construction of a building which is not in construction with game ID {BuildableGameID}."); } else { var speedUpCost = LogicUtils.CalculateSpeedUpCost(level.Assets, building.ConstructionDuration); level.Avatar.Gems -= speedUpCost; building.SpeedUpConstruction(Tick); } } else if (vilobj is Trap) { var trap = (Trap)vilobj; if (!trap.IsConstructing) { level.Logs.Log($"Tried to speed the construction of a trap which is not in construction with game ID {BuildableGameID}."); } else { var speedUpCost = LogicUtils.CalculateSpeedUpCost(level.Assets, trap.ConstructionDuration); level.Avatar.Gems -= speedUpCost; trap.SpeedUpConstruction(Tick); } } else { level.Logs.Log($"Unexpected VillageObject type: {vilobj.GetType().Name} was asked to be upgraded."); } } }
private void OnTriggerEnter(Collider other) { if (LogicUtils.IsPlayer(other) == false) { return; } PlayerEntity player = other.GetComponent <PlayerEntity>(); player.onEntityDeath -= StopSpawning; player.onEntityDeath += StopSpawning; StartCoroutine(StartSpawning()); }
private void AssignEnemySettings(GameObject randomEnemy) { if (randomEnemy != null) { randomEnemy.name = LogicUtils.RandomString(7); BasicAi AI = randomEnemy.GetComponent <BasicAi>(); if (AI == null) { Debug.LogError("Tried assigning settings to no ai"); return; } CreateReferencesToEnemy(AI); } }
/// <summary> /// 场景中创建模型 /// </summary> /// <param name="_go"></param> /// <param name="_strName"></param> private void CreateNewModel(GameObject _go, string _strName) { Utils.RemoveChildren(m_objRoot.transform); GameObject compObj = new GameObject(); compObj.name = _strName; LogicUtils.ResetStandardShader(_go); _go.transform.SetParent(compObj.transform); _go.transform.position = Vector3.zero; _go.transform.localScale = Vector3.one; compObj.transform.position = Vector3.zero; compObj.transform.localScale = Vector3.one; compObj.transform.SetParent(m_objRoot.transform); }
private void refuelVehicle(string i_PlateNumber) { this.printMultiChoiceList(FuelEnergy.FuelTypeKey, Enum.GetNames(typeof(FuelEnergy.eFuelType))); this.printEnterChoiceMsg(); string i_Choice = Console.ReadLine(); try { FuelEnergy.eFuelType fuelTypeChosen = LogicUtils.EnumValidation <FuelEnergy.eFuelType>(i_Choice, FuelEnergy.FuelTypeKey); float amountToAdd = this.getAmountOfUnitsToAdd(FuelEnergy.FuelUnits); this.m_Garage.RefuelFuelVehicle(i_PlateNumber, fuelTypeChosen, amountToAdd); Console.WriteLine("The vehicle with license plate: {0} was refueled successfuly!", i_PlateNumber); } catch (Exception exception) { Console.WriteLine(exception.Message); } }
private eUserChoice getUserChoice() { eUserChoice userChoice = eUserChoice.ExitProgram; string userChoiceStr; bool isValidInput = false; do { try { this.printEnterChoiceMsg(); userChoiceStr = Console.ReadLine(); userChoice = LogicUtils.EnumValidation <eUserChoice>(userChoiceStr, k_UserChoiceKey); isValidInput = true; } catch (Exception exception) { Console.WriteLine(exception.Message); } }while (!isValidInput); return(userChoice); }
public override async Task Process() { if (Message.StartsWith("/")) { switch (Message.Split(' ')[0]) { case "/help": { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Available commands:\n\n/help\n -> List of all commands.\n/prebase [level]\n -> Load a premade base from level 1 to 6.\n/wall [level]\n -> Set the level of all walls.", Name = "DebugManager", ExpLevel = 100, League = 16, AccountId = 0 }); break; } case "/prebase": { var lvl = Convert.ToInt32(Message.Split(' ')[1]); if (lvl > 0 && lvl < 7) { Device.Player.LogicGameObjectManager.Json = Resources.Levels.Prebases[lvl - 1]; await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = $"Base {lvl} has been set.", Name = "DebugManager", ExpLevel = 100, League = 16 }); } break; } case "/wall": { var lvl = Convert.ToInt32(Message.Split(' ')[1]); if (lvl > 0 && lvl < 12) { foreach (var building in Device.Player.LogicGameObjectManager.Buildings) { if (building.Data != 1000010) { continue; } building.Level = lvl - 1; } await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = $"Wall level set to {lvl}.", Name = "DebugManager", ExpLevel = 100, League = 16 }); } break; } default: { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Invalid Command. Type '/help' for a list of all commands.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } } } else if ((DateTime.Now - Device.Player.LastChatMessage).TotalSeconds >= 1.0) { if (!string.IsNullOrEmpty(Message)) { await Resources.ChatManager.Process(new GlobalChatEntry { Message = Message, SenderName = Device.Player.Name, SenderId = Device.Player.AccountId, SenderExpLevel = Device.Player.ExpLevel, SenderLeague = LogicUtils.GetLeagueByScore(Device.Player.Score) }); Device.Player.LastChatMessage = DateTime.Now; } } }
public async Task EndBattle() { if (Replay.Commands.Count <= 0) { return; } var random = new Random(); var originalScore = Attacker.Score; var attackerReward = random.Next(10, 25); Attacker.Score += attackerReward; var id = await ReplayDb.Save(GetReplayJson); if (id > 0) { Attacker.AddEntry(new BattleReportStreamEntry { MajorVersion = Resources.Fingerprint.GetMajorVersion, Build = Resources.Fingerprint.GetBuildVersion, ContentVersion = Resources.Fingerprint.GetContentVersion, CreationDateTime = DateTime.UtcNow, IsRevengeUsed = true, // Revenge is not supported atm SenderAvatarId = Defender.AccountId, SenderName = Defender.Name, SenderLevel = Defender.ExpLevel, SenderLeagueType = LogicUtils.GetLeagueByScore(Defender.Score), ShardId = 0, ReplayId = id, BattleLogJson = JsonConvert.SerializeObject(new BattleLog { // Here we use random values Loot = new[] { new[] { 3000001, random.Next(1000, 100000) }, new[] { 3000002, random.Next(1000, 100000) } }, Units = new[] { new[] { 4000000, random.Next(10, 50) }, new[] { 4000001, random.Next(10, 50) }, new[] { 4000002, random.Next(10, 50) }, new[] { 4000003, random.Next(10, 50) }, new[] { 4000004, random.Next(10, 50) }, new[] { 4000005, random.Next(10, 50) }, new[] { 4000006, random.Next(10, 50) }, new[] { 4000007, random.Next(10, 50) }, new[] { 4000008, random.Next(10, 50) }, new[] { 4000009, random.Next(10, 50) } }, Levels = new int[0][], Spells = new int[0][], Stats = new BattleLogStats { TownHallDestroyed = true, DestructionPercentage = random.Next(0, 100), AllianceName = "RetroClash", AllianceUsed = false, AttackerScore = attackerReward, BattleEnded = true, BattleTime = Replay.EndTick, DefenderScore = random.Next(-30, -15), HomeId = new[] { 0, 1 }, OriginalScore = originalScore } }) }); } }
public override async Task Process() { if (Message.StartsWith("/")) { switch (Message.Split(' ')[0]) { case "/help": { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Available commands:\n\n/help\n -> List of all commands.\n/rename\n -> Change your name again.\n/replay\n -> Watch a random replay.\n/prebase [level]\n -> Load a premade base from level 1 to 6.\n/reset\n -> Reset your village and start from beginning.\n/wall [level]\n -> Set the level of all walls.", Name = "DebugManager", ExpLevel = 100, League = 16, AccountId = 0 }); break; } case "/prebase": { var lvl = Convert.ToInt32(Message.Split(' ')[1]); if (lvl > 0 && lvl < 7) { Device.Player.LogicGameObjectManager.Json = Resources.Levels.Prebases[lvl - 1]; Device.Player.HeroManager.Clear(); Device.Player.Units.Troops.Clear(); Device.Player.Units.Spells.Clear(); await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = $"Base {lvl} has been set.", Name = "DebugManager", ExpLevel = 100, League = 16 }); } break; } case "/reset": { Device.Player.LogicGameObjectManager.Json = Resources.Levels.StartingHome; Device.Player.Achievements.Clear(); Device.Player.HeroManager.Clear(); Device.Player.Shield.RemoveShield(); Device.Player.Units.Spells.Clear(); Device.Player.Units.Troops.Clear(); await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Village has been set to default.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } case "/rename": { Device.Player.TutorialSteps = 10; Device.Player.ExpLevel = 1; await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); break; } case "/replay": { var replay = await MySQL.GetRandomReplay(); if (replay != null) { await Resources.Gateway.Send(new HomeBattleReplayDataMessage(Device) { Replay = replay }); } else { await Resources.Gateway.Send(new HomeBattleReplayFailedMessage(Device)); } break; } case "/wall": { var lvl = Convert.ToInt32(Message.Split(' ')[1]); if (lvl > 0 && lvl < 12) { foreach (var building in Device.Player.LogicGameObjectManager.Buildings) { if (building.Data != 1000010) { continue; } building.Level = lvl - 1; } await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = $"Wall level set to {lvl}.", Name = "DebugManager", ExpLevel = 100, League = 16 }); } break; } default: { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Invalid Command. Type '/help' for a list of all commands.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } } } else if ((DateTime.Now - Device.Player.LastChatMessage).TotalSeconds >= 1.0) { if (!string.IsNullOrEmpty(Message)) { await Resources.ChatManager.Process(new GlobalChatEntry { Message = Message, SenderName = Device.Player.Name, SenderId = Device.Player.AccountId, SenderExpLevel = Device.Player.ExpLevel, SenderLeague = LogicUtils.GetLeagueByScore(Device.Player.Score) }); Device.Player.LastChatMessage = DateTime.Now; } } }
public override async Task Process() { if (Message.StartsWith("/")) { switch (Message.Split(' ')[0]) { case "/help": { await Resources.Gateway.Send(new GlobalChatLine(Device) { Message = "Available commands:\n\n/help → List of all commands.\n/wall [level] → Set the level of all walls.", Name = "DebugManager", ExpLevel = 100, League = 16, AccountId = 0 }); break; } case "/wall": { var lvl = Convert.ToInt32(Message.Split(' ')[1]); if (lvl > 0 && lvl < 12) { foreach (var building in Device.Player.LogicGameObjectManager.Buildings) { if (building.Data != 1000010) { continue; } building.Level = lvl - 1; } await Resources.Gateway.Send(new OwnHomeData(Device)); await Resources.Gateway.Send(new GlobalChatLine(Device) { Message = $"Wall level set to {lvl}.", Name = "DebugManager", ExpLevel = 100, League = 16, AccountId = 0 }); } break; } default: { await Resources.Gateway.Send(new GlobalChatLine(Device) { Message = "Invalid Command. Type '/help' for a list of all commands.", Name = "DebugManager", ExpLevel = 100, League = 16, AccountId = 0 }); break; } } } else { await Resources.ChatManager.Process(new GlobalChatEntry { Message = Message, SenderName = Device.Player.Name, SenderId = Device.Player.AccountId, SenderExpLevel = Device.Player.ExpLevel, SenderLeague = LogicUtils.GetLeagueByScore(Device.Player.Score) }); } }
public override async Task Process() { if (Message.StartsWith("/")) { switch (Message.Split(' ')[0]) { case "/help": { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Available commands:\n\n/stats\n -> View the server stats.\n/clear [obstacles/traps/decorations]\n -> Clear all obstacles.\n/help\n -> List of all commands.\n/rename\n -> Change your name again.\n/replay\n -> Watch a random replay.\n/prebase [level]\n -> Load a premade base from level 1 to 6.\n/reset\n -> Reset your village and start from beginning.\n/wall [level]\n -> Set the level of all walls.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } case "/prebase": { var lvl = Convert.ToInt32(Message.Split(' ')[1]); if (lvl > 0 && lvl < 7) { Device.Player.LogicGameObjectManager.Json = Resources.Levels.Prebases[lvl - 1]; Device.Player.HeroManager.Clear(); Device.Player.Units.Troops.Clear(); Device.Player.Units.Spells.Clear(); await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = $"Base {lvl} has been set.", Name = "DebugManager", ExpLevel = 100, League = 16 }); } break; } case "/reset": { Device.Player.LogicGameObjectManager.Json = Resources.Levels.StartingHome; Device.Player.Achievements.Clear(); Device.Player.HeroManager.Clear(); Device.Player.Shield.RemoveShield(); Device.Player.Units.Spells.Clear(); Device.Player.Units.Troops.Clear(); await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Village has been set to default.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } case "/rename": { Device.Player.TutorialSteps = 10; Device.Player.ExpLevel = 1; await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); break; } /*case "/add": * { * var type = Message.Split(' ')[1]; * * switch (type) * { * case "trophies": * { * Device.Player.Score += Convert.ToInt32(Message.Split(' ')[2]); * break; * } * * default: * { * await Resources.Gateway.Send(new GlobalChatLineMessage(Device) * { * Message = "Invalid type.", * Name = "DebugManager", * ExpLevel = 100, * League = 16 * }); * break; * } * } * * await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); * * break; * }*/ case "/remove": { var type = Message.Split(' ')[1]; switch (type) { case "trophies": { Device.Player.Score -= Convert.ToInt32(Message.Split(' ')[2]); break; } default: { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Invalid type.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } } await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); break; } case "/clear": { var type = Message.Split(' ')[1]; switch (type) { case "obstacles": { Device.Player.LogicGameObjectManager.Obstacles.Clear(); break; } case "traps": { Device.Player.LogicGameObjectManager.Traps.Clear(); break; } case "decorations": { Device.Player.LogicGameObjectManager.Decorations.Clear(); break; } default: { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Invalid type.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } } await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); break; } case "/replay": { var replay = await ReplayDb.GetRandom(); if (replay != null) { await Resources.Gateway.Send(new HomeBattleReplayDataMessage(Device) { Replay = replay }); } else { await Resources.Gateway.Send(new HomeBattleReplayFailedMessage(Device)); } break; } case "/stats": { var uptime = DateTime.UtcNow - Resources.StartDateTime; await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = $"Players online: {Resources.PlayerCache.Count}\nPlayers cached: {Redis.CachedPlayers()}\nUsed RAM: {GC.GetTotalMemory(false) / 1024 / 1024}MB\nUptime: {uptime.Days}d {uptime.Hours}h {uptime.Minutes}m {uptime.Seconds}s\nServer version: {Configuration.Version}\nFingerprint version: {Resources.Fingerprint.GetMajorVersion}.{Resources.Fingerprint.GetBuildVersion}.{Resources.Fingerprint.GetContentVersion}", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } case "/wall": { var lvl = Convert.ToInt32(Message.Split(' ')[1]); if (lvl > 0 && lvl < 12) { foreach (var building in Device.Player.LogicGameObjectManager.Buildings) { if (building.Data != 1000010) { continue; } building.Level = lvl - 1; } await Resources.Gateway.Send(new OwnHomeDataMessage(Device)); await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = $"Wall level set to {lvl}.", Name = "DebugManager", ExpLevel = 100, League = 16 }); } break; } default: { await Resources.Gateway.Send(new GlobalChatLineMessage(Device) { Message = "Invalid Command. Type '/help' for a list of all commands.", Name = "DebugManager", ExpLevel = 100, League = 16 }); break; } } } else if ((DateTime.UtcNow - Device.LastChatMessage).TotalSeconds >= 1.0) { if (!string.IsNullOrEmpty(Message)) { await Resources.ChatManager.Process(new GlobalChatEntry { Message = Message, SenderName = Device.Player.Name, SenderId = Device.Player.AccountId, SenderExpLevel = Device.Player.ExpLevel, SenderLeague = LogicUtils.GetLeagueByScore(Device.Player.Score) }); Device.LastChatMessage = DateTime.UtcNow; } } }
public Sentence asSentence() { return(LogicUtils.chainWith("AND", sentences)); }