/// <summary>
        /// Is called whenever an object leaves this Character's sight
        /// </summary>
        public void OnOutOfRange(WorldObject obj)
        {
            obj.AreaCharCount--;
            if (obj == Asda2DuelingOponent)
            {
                if (Asda2Duel != null)
                {
                    Asda2Duel.StopPvp();
                }
            }
            if (obj == m_target)
            {
                // unset current Target
                ClearTarget();
            }

            if (obj == m_activePet)
            {
                ActivePet = null;
            }

            if (GossipConversation != null && obj == GossipConversation.Speaker && GossipConversation.Character == this)
            {
                // stop conversation with a vanished object
                GossipConversation.Dispose();
            }

            if (!(obj is Transport))
            {
                KnownObjects.Remove(obj);
            }
            var chr = obj as Character;

            if (chr != null)
            {
                if (EnemyCharacters.Contains(chr))
                {
                    EnemyCharacters.Remove(chr);
                    CheckEnemysCount();
                }
                GlobalHandler.SendCharacterDeleteResponse(chr, Client);
            }
            else
            {
                var loot = obj as Asda2Loot;
                if (loot != null)
                {
                    GlobalHandler.SendRemoveLootResponse(this, loot);
                }
            }
        }
        static void StartLoadData()
        {
            var data = Resources.Load <StageData>("Data/StageData");

            Stages = data.Stages;

            var playerData = Resources.Load <PlayerCharacterData>("Data/PlayerCharacterData");

            PlayerCharacters = playerData.PlayerCharacters;

            var enemyData = Resources.Load <EnemyCharacterData>("Data/EnemyCharacterData");

            EnemyCharacters = enemyData.EnemyCharacters;
        }
Exemple #3
0
 private void CheckAtackStateWithCharacter(Character visibleChr)
 {
     if (MayAttack(visibleChr))
     {
         EnemyCharacters.Add(visibleChr);
         if (IsAsda2BattlegroundInProgress)
         {
             GlobalHandler.SendFightingModeChangedOnWarResponse(Client, visibleChr.SessionId, (int)visibleChr.AccId, visibleChr.Asda2FactionId);
         }
         else
         {
             GlobalHandler.SendFightingModeChangedResponse(Client, SessionId, (int)AccId, visibleChr.SessionId);
         }
     }
     else
     {
         if (EnemyCharacters.Contains(visibleChr))
         {
             EnemyCharacters.Remove(visibleChr);
             CheckEnemysCount();
         }
     }
 }
Exemple #4
0
        void Start()
        {
            CreateGrid();
            List <EncounterUtils.Point> playerSpawnPoints = EncounterUtils.GetSpawnPoints(Team.Player, MAP_NAME, EncounterUtils.Difficulty.Easy);
            List <EncounterUtils.Point> enemySpawnPoints  = EncounterUtils.GetSpawnPoints(Team.Enemy, MAP_NAME, EncounterUtils.Difficulty.Easy);

            playerSpawnArea = pointsToTiles(playerSpawnPoints);
            enemySpawnArea  = pointsToTiles(enemySpawnPoints);
            List <Character> playerCharacters = Character.GetCurrentCharacters();
            List <Character> enemyCharacters  = EnemyCharacters.GetEnemies();

            for (int i = 0; i < playerSpawnArea.Count; i++)
            {
                playerSpawnArea[i].SpawnUnit(playerCharacters[i]);
            }
            for (int i = 0; i < playerSpawnArea.Count; i++)
            {
                enemySpawnArea[i].SpawnUnit(enemyCharacters[i]);
            }

            EncounterUtils.Highlight(enemySpawnArea, Color.red);
            turnOnAI = false;
            SetupRandomObjective();
        }