コード例 #1
0
 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));
     }
 }
コード例 #2
0
    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();
    }
コード例 #3
0
        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();
        }