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); } }
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); }