コード例 #1
0
ファイル: GameEvnet.cs プロジェクト: HEIENTAI/SoulOfSword
 /// <summary>
 /// 產生一個判斷遊戲事件條件式的物件
 /// </summary>
 /// <param name="data">遊戲事件條件資料</param>
 /// <returns></returns>
 public static GameEventCondition CreateGameEventCondition(GameEventConditionData data)
 {
     GameEventConditionType gameEventConditionType;
     // 決定對應到的GameEventCondtionType
     if (data == null)
     {
         gameEventConditionType = GameEventConditionType.None;
     }
     else
     {
         if (data.CheckType.HasValue && Enum.IsDefined(typeof(GameEventConditionType), data.CheckType.Value))
         {
             gameEventConditionType = (GameEventConditionType)data.CheckType.Value;
         }
         else
         {
             gameEventConditionType = GameEventConditionType.None;
         }
     }
     switch (gameEventConditionType)
     {
         case GameEventConditionType.Mark:
             return new GameEventCondition_Mark(data.CheckData, data.CheckOp, data.CheckTarget);
         case GameEventConditionType.Level:
             return new GameEventCondition_Level(data.CheckData, data.CheckOp, data.CheckTarget);
         //case GameEventConditionType.Money:
         //    return
         default:
             return new GameEventCondition();
     }
 }
コード例 #2
0
 /// <summary>
 /// 將index位置的Condition資料替換成oneData,如果list數量不足,填null直到index指示的位置。
 /// </summary>
 /// <param name="index">要替換的資料位置</param>
 /// <param name="oneData">新資料</param>
 /// <returns>是否有資料被覆蓋</returns>
 public bool AddOrReplaceCoditionData(int index, GameEventConditionData oneData)
 {
     if (index >= _conditionList.Count)
     {
         for (int i = _conditionList.Count; i <= index; ++i)
         {
             _conditionList.Add(GameEventCondition.CreateGameEventCondition(null));
         }
     }
     bool haveData = (_conditionList[index].GetType() != typeof(GameEventCondition)); // 型別不等於base型別,表示有資料會被蓋掉
     _conditionList[index] = GameEventCondition.CreateGameEventCondition(oneData);
     return haveData;
 }