123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- 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<int, Player> playerDict;
- private List<Player> playerList;
- public Dictionary<int, PlayerStatsData> battleStatsDict;
- public BattleSession (MessageManager messageManager)
- {
- this.messageManager = messageManager;
- playerDict = new Dictionary<int, Player>();
- playerList = new List<Player> ();
- battleStatsDict = new Dictionary<int, PlayerStatsData>();
- }
- 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<playerList.Count; i++)
- {
- Player player = playerList [i];
- if(player.playerId == playerId && player.userId < 0)
- {
- battleController.DealPlayerDeath (player, player.GetHero ().GetCraft());
- }
- }
- }
- public void PlayerLeft(int userId)
- {
- Player player = null;
- playerDict.TryGetValue (userId, out player);
- if(player != null)
- {
- player.lost = true;
- }
- }
- public Player GetPlayer(int userId)
- {
- if(playerDict.ContainsKey(userId))
- {
- return playerDict[userId];
- }
- return null;
- }
- public Player GetPlayerByTeam(TeamUtil.Team team)
- {
- for(int i=0; i<playerList.Count; i++)
- {
- Player player = playerList [i];
- if(player.team == team)
- {
- return player;
- }
- }
- return null;
- }
- public List<Player> GetPlayerList()
- {
- return playerList;
- }
- public void resetBattleStats()
- {
- battleStatsDict.Clear();
- }
- public Dictionary<int, PlayerStatsData> 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<CraftConfigData> list = CraftManager.GetInstance().GetDataList();
- for(int i=0; i<list.Count; i++)
- {
- if(list[i].id == id)
- {
- index = i;
- break;
- }
- }
- if(index < 0 || index >= 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;
- }
- }
|