Exemple #1
0
		public static void Recycle(Hall hall)
		{
			if (hall != null)
			{
                instance = null;
				hall.Data = null;
				ResourceManager.Instance.RecycleAsset(hall.Script.gameObject);
				hall.Script = null;
			}
			else
			{
				BaseLogger.Log("Recyle a null hall!");
			}
		}
Exemple #2
0
		public static Hall Create(int kid)
		{
			ResourceManager resManager = ResourceManager.Instance;

			Hall hall = new Hall();
			hall.Uid = Guid.NewGuid().ToString();
			hall.Data = HallDataManager.Instance.GetData(kid) as HallData;
			hall.Script = resManager.LoadAsset<HallScript>(ObjectType.GameObject, hall.Data.GetResPath());
            hall.Script.Uid = hall.Uid;
            hall.SetPosition(GlobalConfig.HallConfig.HallPosition);
			instance = hall;

			return hall;
		}
        private void HandleHallDespawn(Hall hall)
        {
            monsterProxy.InitRecordHallList(hall.Data.Kid);
            monsterProxy.IterateMonstersInHall((Monster monster) => 
                {
                    battleProxy.RemoveMonster(monster.Uid);
                    if (monster.Info.IsAlive)
                    {
                        monsterProxy.HideMonsterInHall(monster.Uid, hall.Data.Kid);
                    }
                    else
                    {
                        monsterProxy.RemoveMonsterInHall(monster.Uid, hall.Data.Kid);
                    }
                });

            monsterProxy.ClearMonstersInHall();
        }
 private void HandleHallSpawn(Hall hall)
 {
     List<MonsterRecord> recordList = monsterProxy.GetRecordHallList(hall.Data.Kid);
     if(recordList != null)
     {
         for(int i = 0; i < recordList.Count; ++i)
         {
             MonsterRecord record = recordList[i];
             Monster monster = Monster.Create(record);
             InitMonsterInHall(monster, record.WorldPosition.ToVector3());
         }
     }
     else
     {
         PositionScript[] positionList = hall.Script.GetPositionList(PositionType.Monster);
         for (int i = 0; i < positionList.Length; ++i)
         {
             PositionScript birth = positionList[i];
             Monster monster = Monster.Create(birth.Kid);
             InitMonsterInHall(monster, birth.transform.position);
         }
     }
 }
 private void HandleHallDespawn(Hall hall)
 {
     explorationProxy.IterateInHall((Exploration expl) =>
         {
             explorationProxy.RemoveInHall(expl.Uid);
         });
     explorationProxy.ClearInHall();
 }
 private void HandleHallSpawn(Hall hall)
 {
     PositionScript[] positionList = hall.Script.GetPositionList(PositionType.Exploration);
     for(int i = 0; i < positionList.Length; ++i)
     {
         PositionScript birth = positionList[i];
         List<object> paramList = new List<object>();//TODO: How to change this hard code?
         paramList.Add(TransporterDirectionType.Back);
         CreateExploration(birth.Kid, birth, paramList);
     }
 }