private void StartGameEvent(int team) { if (team != NetworkManager.localPlayerInformation.team) { return; } GameEventType chosenEventType = (GameEventType)UnityEngine.Random.Range(0, (int)GameEventType.EnumSize); Debug.Log("Calling event of type: " + chosenEventType.ToString() + " to team: " + team); switch (chosenEventType) { case GameEventType.BreakCleanableObject: BreakCleanableObject(false); break; case GameEventType.BreakCleanableObjectWithTimer: BreakCleanableObject(true); break; case GameEventType.SpawnWieldable: SpawnWieldable(); break; } }
public GameEventMessage(GameEventType type, List <string> players, double moneyTransferred, IDictionary <string, int> items, string tradePostId) { //p_type = type; this.type = type.ToString(); this.players = players; this.moneyTransferred = moneyTransferred; this.items = items; this.tradePostId = tradePostId; }
private IGameEventSubject GetGameEventSub(GameEventType eventType) { if (!m_GameEvents.ContainsKey(eventType)) { //aSong:这个可以使用反射,因为仅需要一次性 if (eventType != GameEventType.Null) { m_GameEvents.Add(eventType, Assembly.GetExecutingAssembly().CreateInstance(eventType.ToString() + "Subject") as IGameEventSubject); } //m_GameEvents.Add(eventType, Activator.CreateInstance( Type.GetType(eventType.ToString()+"Subject")) as IGameEventSubject); /* * switch (eventType) * { * case GameEventType.EnemyKilled: * m_GameEvents.Add(GameEventType.EnemyKilled, new EnemyKilledSubject()); * break; * case GameEventType.SoldierKilled: * m_GameEvents.Add(GameEventType.SoldierKilled, new SoldierKilledSubject()); * break; * case GameEventType.NewStage: * m_GameEvents.Add(GameEventType.NewStage, new NewStageSubject()); * break; * default: * Debug.LogError("没有对应事件类型 " + eventType + "主题类"); * return null; * } */ //return null; } return(m_GameEvents[eventType]); }
private IGameEventSubject GetGameEventSubject(GameEventType gameEventType) { if (mGameEventDict.ContainsKey(gameEventType) == false) { switch (gameEventType) { case GameEventType.EnemyKilled: mGameEventDict.Add(GameEventType.EnemyKilled, new EnemyKilledSubject()); break; case GameEventType.SoldierKilled: mGameEventDict.Add(GameEventType.SoldierKilled, new SoldierKilledSubject()); break; case GameEventType.NewStage: mGameEventDict.Add(GameEventType.NewStage, new NewStageSubject()); break; default: Debug.LogError(GetType() + "/GetGameEventSubject()/ There is no one in mGameEventDict : " + gameEventType.ToString()); return(null); } } return(mGameEventDict[gameEventType]); }