Beispiel #1
0
        public BattleActionScriptContainerData(string fileName)
        {
            TextAsset fileAsset = Resources.Load(fileName) as TextAsset;
            JSON      js        = new JSON();

            js.serialized = fileAsset.text;

            JSON[] scriptsJS = js.ToArray <JSON>("scripts");

            actionScriptDataList       = new List <BattleActionScriptData>();
            actionScriptDataDictionary = new Dictionary <string, BattleActionScriptData>();

            for (int i = 0; i < scriptsJS.Length; ++i)
            {
                JSON scriptJS = scriptsJS[i];
                BattleActionScriptData scriptData = new BattleActionScriptData(scriptJS);
                if (!actionScriptDataDictionary.ContainsKey(scriptData.id))
                {
                    actionScriptDataList.Add(scriptData);
                    actionScriptDataDictionary.Add(scriptData.id, scriptData);
                }
                else
                {
                    Debug.Log("Error: Duplicate script Id " + scriptData.id);
                }
            }
        }
 public BattleActionScriptContainer(AICharacter aiChar, BattleActionScriptContainerData scriptContainerData)
 {
     _dictOfBattleActionScripts = new Dictionary <string, BattleActionScript>();
     for (int i = 0; i < scriptContainerData.actionScriptDataList.Count; ++i)
     {
         BattleActionScriptData scriptData = scriptContainerData.actionScriptDataList[i];
         BattleActionScript     script     = new BattleActionScript(aiChar, this, scriptData);
         _dictOfBattleActionScripts.Add(script.Id, script);
     }
 }
        public BattleActionScript(AICharacter aiChar, BattleActionScriptContainer scriptContainer, BattleActionScriptData actionScriptData)
        {
            _scriptContainer  = scriptContainer;
            _actionScriptData = actionScriptData;

            _speed = actionScriptData.speed;
            _listOfBattleActions = new List <BattleAction>();
            for (int i = 0; i < actionScriptData.listOfActionData.Count; ++i)
            {
                BattleAction battleAction = BattleActionTypes.GetBattleAction(aiChar, this, actionScriptData.listOfActionData[i]);
                _listOfBattleActions.Add(battleAction);
            }
        }
Beispiel #4
0
        public static BattleActionData GetBattleActionData(BattleActionScriptData scriptData, JSON js, int actionIndex)
        {
            string actionTypeString = js.ToString("type");

            if (actionTypeString.StartsWith("#"))
            {
                // Ignore
                return(null);
            }
            TYPE actionType = (TYPE)System.Enum.Parse(typeof(TYPE), actionTypeString);

            switch (actionType)
            {
            case BattleActionTypes.TYPE.PLAY_ANIM: return(new BattleActionPlayAnimData(js));
            }

            Debug.LogWarning("Invalid BattleAction tag detected in script (" + scriptData.id + " action #" + (actionIndex + 1) + "): " + actionType);
            return(null);
        }