using UnityEngine; using System; using System.Collections; using System.Collections.Generic; public class BattleSession { public MapData.MapID mapId; public MapData.Mode mode; public Player myPlayer; private int m_AiTakerUserId = -1; private MessageManager messageManager; private BattleController battleController; private Dictionary playerDict; private List playerList; public Dictionary battleStatsDict; public BattleSession (MessageManager messageManager) { this.messageManager = messageManager; playerDict = new Dictionary(); playerList = new List (); battleStatsDict = new Dictionary(); } public void ResetBattle() { if (battleController != null) battleController.isExit = true; m_AiTakerUserId = -1; battleController = null; myPlayer = null; playerDict.Clear(); playerList.Clear(); } public MessageManager GetMessageManager() { return messageManager; } public int aiTakerUserId { set{ m_AiTakerUserId = value; } get{ if (BattleController.battleType == BattleController.BattleType.Menu) return Session.myUserId; return m_AiTakerUserId; } } public int myUserId { get { return messageManager.myUserId; } } public void SetMyPlayerId(int id) { int oldId = myPlayer.userId; playerDict.Remove (oldId); myPlayer.userId = id; playerDict.Add (id, myPlayer); } public Player AddPlayer(int id, string nick, TeamUtil.Team team, int playerId) { Player player = null; playerDict.TryGetValue (id, out player); if (player == null) { player = new Player (); player.userId = id; player.nick = nick; player.team = team; player.playerId = playerId; //If AI take this player id RemoveAIPlayerByPlayerId(playerId); playerDict.Add (player.userId, player); playerList.Add (player); } else { if (player.lost) player.lost = false; } if (player.userId == myUserId) { myPlayer = player; player.isMe = true; } return player; } private void RemoveAIPlayerByPlayerId(int playerId) { for(int i=0; i GetPlayerList() { return playerList; } public void resetBattleStats() { battleStatsDict.Clear(); } public Dictionary GetBattleStats() { return battleStatsDict; } public bool IsReady() { return this.battleController != null; } public bool IsOver() { return this.battleController != null && this.battleController.isGameOver; } public void registeBattleController(BattleController battleController) { this.battleController = battleController; // GetMessageManager().PlayerJoin(); } public BattleController GetBattleController() { return battleController; } public bool CanCraftSelect(int index) { UserData userData = Session.GetInstance().myUserData; if(userData.IsVIP()) return true; if(userData.craftSelectLimit == null) return true; if(index < 0 || index >= userData.craftSelectLimit.Length) return false; int level = userData.GetBadge() / 10; level = 0; int craftLevel = userData.craftSelectLimit[index]; if(level >= craftLevel) return true; return false; } public bool CanCraftSelectById(int id) { UserData userData = Session.GetInstance().myUserData; if(userData.IsVIP()) return true; if(userData.craftSelectLimit == null) return true; int index = -1; List list = CraftManager.GetInstance().GetDataList(); for(int i=0; i= userData.craftSelectLimit.Length) return false; int level = userData.GetBadge() / 10; int craftLevel = userData.craftSelectLimit[index]; if(level >= craftLevel) return true; return false; } public bool IsAlly(TeamUtil.Team team) { return myPlayer.team == team; } }