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;
        }
    }
Exemple #2
0
 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]);
        }