public void AddMonster(int monsterId, int chanceOfEncounter) { if (Monsters.Exists(m => m.MonsterId == monsterId)) { Monsters.First(m => m.MonsterId == monsterId) .ChanceOfEncounter = chanceOfEncounter; } else { Monsters.Add(new MonsterEncounter(monsterId, chanceOfEncounter)); } }
void OnMonsterDeath(int id) { Debug.Log($"Monster with id {id} died, current Monsters is {Monsters.Count}"); var monster = Monsters.First(e => e.id == id); _battleResult.Experience += monster.GetExperience(); _battleResult.Gold += Random.Range(50, 500) * _level; _battleResult.Items.Add(ItemCreator.CreateItem(monster.level)); Monsters.Remove(monster); positionedMonsters.Remove(positionedMonsters.FirstOrDefault(e => e.Value.id == id).Key); allCharacters.Remove(id); CheckMonsterDict(); }
public void LaunchAttackByCellId(ushort cellId) { if (cellId > 559) { return; } var movement = MoveToCell(cellId); movement.MovementFinished += (sender, e) => { if (!e.Sucess) { return; } var monsterGroup = Monsters.First(g => g.CellId == cellId); if (monsterGroup != null) { _account.Network.SendToServer(new GameRolePlayAttackMonsterRequestMessage(monsterGroup.Id)); } }; movement.PerformMovement(); }