Exemple #1
0
 public void ShowText(string t, GameObject c, BattleTextSettings ts)
 {
     this.combatant = c;
     this.settings = ts;
     if(this.InitSettings())
     {
         this.text = t;
         this.cam = Camera.main;
         if(!GameHandler.GetLevelHandler().useGUILayout) GameHandler.GUIHandler().AddBattleTextSprite(this);
     }
 }
Exemple #2
0
 public void ShowNumber(int i, GameObject c, BattleTextSettings ts)
 {
     this.combatant = c;
     this.settings = ts;
     if(this.InitSettings())
     {
         this.text = this.settings.text[GameHandler.GetLanguage()];
         this.value = i;
         this.startValue = (int)((this.value/100.0f)*this.settings.startCountFrom);
         this.countDistance = this.value - this.startValue;
         this.countInterpolate = Interpolate.Ease(this.settings.countInterpolate);
         this.cam = Camera.main;
         this.counting = true;
     }
 }
Exemple #3
0
    public static void BattleTextSettings(ref BattleTextSettings ts, string txt, bool showCount)
    {
        ts.active = EditorGUILayout.Toggle("Show text", ts.active, GUILayout.Width(mWidth));
        if(ts.active)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.BeginVertical();
            GUILayout.Label("Text settings", EditorStyles.boldLabel);
            GUILayout.Label(txt);
            for(int i=0; i<ts.text.Length; i++)
            {
                ts.text[i] = EditorGUILayout.TextField(DataHolder.Languages().GetName(i),
                        ts.text[i], GUILayout.Width(mWidth));
            }

            ts.color = EditorGUILayout.Popup("Color", ts.color, DataHolder.Colors().GetNameList(true), GUILayout.Width(mWidth));
            ts.showShadow = EditorGUILayout.Toggle("Show shadow", ts.showShadow, GUILayout.Width(mWidth));
            if(ts.showShadow)
            {
                ts.shadowColor = EditorGUILayout.Popup("Shadow color", ts.shadowColor, DataHolder.Colors().GetNameList(true), GUILayout.Width(mWidth));
                ts.shadowOffset = EditorGUILayout.Vector2Field("Shadow offset", ts.shadowOffset, GUILayout.Width(mWidth));
            }
            EditorGUILayout.Separator();

            ts.visibleTime = EditorGUILayout.FloatField("Visible time", ts.visibleTime, GUILayout.Width(mWidth));
            EditorGUILayout.Separator();

            if(showCount && GUISystemType.UNITY.Equals(DataHolder.GameSettings().guiSystemType))
            {
                ts.countToValue = EditorGUILayout.Toggle("Count to value", ts.countToValue, GUILayout.Width(mWidth));
                if(ts.countToValue)
                {
                    ts.startCountFrom = EditorGUILayout.FloatField("Start from (%)", ts.startCountFrom, GUILayout.Width(mWidth));
                    ts.countInterpolate = (EaseType)EditorGUILayout.EnumPopup("Interpolation", ts.countInterpolate, GUILayout.Width(mWidth));
                    ts.countTime = EditorGUILayout.FloatField("Time", ts.countTime, GUILayout.Width(mWidth));
                }
                EditorGUILayout.Separator();
            }
            else ts.countToValue = false;

            GUILayout.Label("Position settings", EditorStyles.boldLabel);
            ts.posChild = EditorGUILayout.TextField("Use child", ts.posChild, GUILayout.Width(mWidth));
            ts.localSpace = EditorGUILayout.Toggle("Local space", ts.localSpace, GUILayout.Width(mWidth));
            ts.baseOffset = EditorGUILayout.Vector3Field("Base offset", ts.baseOffset, GUILayout.Width(mWidth));
            ts.randomOffsetFrom = EditorGUILayout.Vector3Field("Random offset from", ts.randomOffsetFrom, GUILayout.Width(mWidth));
            ts.randomOffsetTo = EditorGUILayout.Vector3Field("Random offset to", ts.randomOffsetTo, GUILayout.Width(mWidth));
            EditorGUILayout.Separator();
            EditorGUILayout.EndVertical();

            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.Separator();

            EditorGUILayout.BeginVertical();
            GUILayout.Label("Fade settings", EditorStyles.boldLabel);
            ts.fadeIn = EditorGUILayout.Toggle("Fade in", ts.fadeIn, GUILayout.Width(mWidth));
            if(ts.fadeIn)
            {
                ts.fadeInTime = EditorGUILayout.FloatField("Fade in time", ts.fadeInTime, GUILayout.Width(mWidth));
                ts.fadeInStart = EditorGUILayout.FloatField("Start alpha", ts.fadeInStart, GUILayout.Width(mWidth));
                if(ts.fadeInStart < 0) ts.fadeInStart = 0; else if(ts.fadeInStart > 1) ts.fadeInStart = 1;
                ts.fadeInEnd = EditorGUILayout.FloatField("End alpha", ts.fadeInEnd, GUILayout.Width(mWidth));
                if(ts.fadeInEnd < 0) ts.fadeInEnd = 0; else if(ts.fadeInEnd > 1) ts.fadeInEnd = 1;
                ts.fadeInInterpolate = (EaseType)EditorGUILayout.EnumPopup("Interpolation", ts.fadeInInterpolate, GUILayout.Width(mWidth));
            }
            EditorGUILayout.Separator();
            ts.fadeOut = EditorGUILayout.Toggle("Fade out", ts.fadeOut, GUILayout.Width(mWidth));
            if(ts.fadeOut)
            {
                ts.fadeOutTime = EditorGUILayout.FloatField("Fade out time", ts.fadeOutTime, GUILayout.Width(mWidth));
                ts.fadeOutStart = EditorGUILayout.FloatField("Start alpha", ts.fadeOutStart, GUILayout.Width(mWidth));
                if(ts.fadeOutStart < 0) ts.fadeOutStart = 0; else if(ts.fadeOutStart > 1) ts.fadeOutStart = 1;
                ts.fadeOutEnd = EditorGUILayout.FloatField("End alpha", ts.fadeOutEnd, GUILayout.Width(mWidth));
                if(ts.fadeOutEnd < 0) ts.fadeOutEnd = 0; else if(ts.fadeOutEnd > 1) ts.fadeOutEnd = 1;
                ts.fadeOutInterpolate = (EaseType)EditorGUILayout.EnumPopup("Interpolation", ts.fadeOutInterpolate, GUILayout.Width(mWidth));
            }
            EditorGUILayout.Separator();

            GUILayout.Label("Prefab settings", EditorStyles.boldLabel);
            ts.spawnPrefab = EditorGUILayout.Toggle("Spawn prefab", ts.spawnPrefab, GUILayout.Width(mWidth));
            if(ts.spawnPrefab)
            {
                if(ts.prefab == null && "" != ts.prefabName)
                {
                    ts.prefab = (GameObject)Resources.Load(BattleSystemData.PREFAB_PATH+
                            ts.prefabName, typeof(GameObject));
                }
                ts.prefab = (GameObject)EditorGUILayout.ObjectField("Prefab", ts.prefab,
                        typeof(GameObject), false, GUILayout.Width(mWidth));
                if(ts.prefab) ts.prefabName = ts.prefab.name;
                else ts.prefabName = "";

                ts.prefabTime = EditorGUILayout.FloatField("Destroy after", ts.prefabTime, GUILayout.Width(mWidth));
                ts.prefabChild = EditorGUILayout.TextField("Spawn on child", ts.prefabChild, GUILayout.Width(mWidth));
                ts.prefabOffset = EditorGUILayout.Vector3Field("Spawn offset", ts.prefabOffset, GUILayout.Width(mWidth));
            }
            EditorGUILayout.Separator();

            GUILayout.Label("Audio settings", EditorStyles.boldLabel);
            ts.playAudio = EditorGUILayout.Toggle("Play audio", ts.playAudio, GUILayout.Width(mWidth));
            if(ts.playAudio)
            {
                if(ts.audioClip == null && "" != ts.audioName)
                {
                    ts.audioClip = (AudioClip)Resources.Load(BattleSystemData.AUDIO_PATH+
                            ts.audioName, typeof(AudioClip));
                }
                ts.audioClip = (AudioClip)EditorGUILayout.ObjectField("Audio clip", ts.audioClip,
                        typeof(AudioClip), false, GUILayout.Width(mWidth));
                if(ts.audioClip) ts.audioName = ts.audioClip.name;
                else ts.audioName = "";
            }
            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.EndVertical();

            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.Separator();

            EditorGUILayout.BeginVertical();
            GUILayout.Label("Animation", EditorStyles.boldLabel);
            ts.animate = EditorGUILayout.Toggle("Animate", ts.animate, GUILayout.Width(mWidth));
            if(ts.animate)
            {
                ts.xRandom = EditorGUILayout.Toggle("X random", ts.xRandom, GUILayout.Width(mWidth));
                if(ts.xRandom)
                {
                    ts.xMin = EditorGUILayout.FloatField("X min", ts.xMin, GUILayout.Width(mWidth));
                    ts.xMax = EditorGUILayout.FloatField("X max", ts.xMax, GUILayout.Width(mWidth));
                }
                else
                {
                    ts.xSpeed = EditorGUILayout.FloatField("X speed", ts.xSpeed, GUILayout.Width(mWidth));
                }
                EditorGUILayout.Separator();
                ts.yRandom = EditorGUILayout.Toggle("Y random", ts.yRandom, GUILayout.Width(mWidth));
                if(ts.yRandom)
                {
                    ts.yMin = EditorGUILayout.FloatField("Y min", ts.yMin, GUILayout.Width(mWidth));
                    ts.yMax = EditorGUILayout.FloatField("Y max", ts.yMax, GUILayout.Width(mWidth));
                }
                else
                {
                    ts.ySpeed = EditorGUILayout.FloatField("Y speed", ts.ySpeed, GUILayout.Width(mWidth));
                }
                EditorGUILayout.Separator();
                ts.zRandom = EditorGUILayout.Toggle("Z random", ts.zRandom, GUILayout.Width(mWidth));
                if(ts.zRandom)
                {
                    ts.zMin = EditorGUILayout.FloatField("Z min", ts.zMin, GUILayout.Width(mWidth));
                    ts.zMax = EditorGUILayout.FloatField("Z max", ts.zMax, GUILayout.Width(mWidth));
                }
                else
                {
                    ts.zSpeed = EditorGUILayout.FloatField("Z speed", ts.zSpeed, GUILayout.Width(mWidth));
                }
                EditorGUILayout.Separator();
            }

            ts.flash = EditorGUILayout.Toggle("Flash object", ts.flash, GUILayout.Width(mWidth));
            if(ts.flash)
            {
                ts.fromCurrent = EditorGUILayout.Toggle("From current", ts.fromCurrent, GUILayout.Width(mWidth));
                ts.flashTime = EditorGUILayout.FloatField("Time", ts.flashTime, GUILayout.Width(mWidth));
                ts.flashChildren = EditorGUILayout.Toggle("Flash children", ts.flashChildren, GUILayout.Width(mWidth));
                ts.flashInterpolate = (EaseType)EditorGUILayout.EnumPopup("Interpolation", ts.flashInterpolate, GUILayout.Width(mWidth));
                EditorGUILayout.Separator();
                ts.flashAlpha = EditorGUILayout.Toggle("Alpha", ts.flashAlpha, GUILayout.Width(mWidth));
                if(ts.flashAlpha)
                {
                    if(!ts.fromCurrent) ts.alphaStart = EditorGUILayout.FloatField("From", ts.alphaStart, GUILayout.Width(mWidth));
                    ts.alphaEnd = EditorGUILayout.FloatField("To", ts.alphaEnd, GUILayout.Width(mWidth));
                    EditorGUILayout.Separator();
                }
                ts.flashRed	= EditorGUILayout.Toggle("Red", ts.flashRed, GUILayout.Width(mWidth));
                if(ts.flashRed)
                {
                    if(!ts.fromCurrent) ts.redStart = EditorGUILayout.FloatField("From", ts.redStart, GUILayout.Width(mWidth));
                    ts.redEnd = EditorGUILayout.FloatField("To", ts.redEnd, GUILayout.Width(mWidth));
                    EditorGUILayout.Separator();
                }
                ts.flashGreen = EditorGUILayout.Toggle("Green", ts.flashGreen, GUILayout.Width(mWidth));
                if(ts.flashGreen)
                {
                    if(!ts.fromCurrent) ts.greenStart = EditorGUILayout.FloatField("From", ts.greenStart, GUILayout.Width(mWidth));
                    ts.greenEnd = EditorGUILayout.FloatField("To", ts.greenEnd, GUILayout.Width(mWidth));
                    EditorGUILayout.Separator();
                }
                ts.flashBlue = EditorGUILayout.Toggle("Blue", ts.flashBlue, GUILayout.Width(mWidth));
                if(ts.flashBlue)
                {
                    if(!ts.fromCurrent) ts.blueStart = EditorGUILayout.FloatField("From", ts.blueStart, GUILayout.Width(mWidth));
                    ts.blueEnd = EditorGUILayout.FloatField("To", ts.blueEnd, GUILayout.Width(mWidth));
                }
            }
            EditorGUILayout.Separator();
            EditorGUILayout.Separator();
            EditorGUILayout.EndVertical();
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();
        }
    }
    public void LoadData()
    {
        ArrayList data = XMLHandler.LoadXML(dir+filename);

        this.system = new BattleSystem();
        this.menu = new BattleMenu();
        this.end = new BattleEnd();
        this.cam = new BattleCam();
        this.control = new BattleControl();

        this.effectTextSettings = new BattleTextSettings();
        this.missTextSettings = new BattleTextSettings("Miss");
        this.blockTextSettings = new BattleTextSettings("Block");
        this.castCancelTextSettings = new BattleTextSettings("Cast canceled");
        this.levelUpTextSettings = new BattleTextSettings("Level up!");
        this.classLevelUpTextSettings = new BattleTextSettings("Class level up!");
        this.counterText = new ArrayList();
        this.allAlliesText = new ArrayList();
        this.allEnemiesText = new ArrayList();
        this.stealItemText = new ArrayList();
        this.stealItemFailText = new ArrayList();
        this.stealMoneyText = new ArrayList();
        this.stealMoneyFailText = new ArrayList();
        this.battleStartText = new ArrayList();
        this.battleVictoryText = new ArrayList();
        this.battleDefeatText = new ArrayList();
        this.battleEscapeText = new ArrayList();

        for(int i=0; i<DataHolder.Languages().GetDataCount(); i++)
        {
            this.counterText.Add("Counter attack");
            this.allAlliesText.Add("All allies");
            this.allEnemiesText.Add("All enemies");
            this.stealItemText.Add("%n stole %");
            this.stealItemFailText.Add("Steal failed");
            this.stealMoneyText.Add("%n stole %");
            this.stealMoneyFailText.Add("Steal failed");
            this.battleStartText.Add("Fight!");
            this.battleVictoryText.Add("Victory");
            this.battleDefeatText.Add("You are defeated");
            this.battleEscapeText.Add("You escaped");
        }

        if(data.Count > 0)
        {
            foreach(Hashtable entry in data)
            {
                if(entry[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLESYSTEM)
                {
                    if(entry.ContainsKey(XMLHandler.NODES))
                    {
                        ArrayList subs = entry[XMLHandler.NODES] as ArrayList;
                        foreach(Hashtable val in subs)
                        {
                            if(val[XMLHandler.NODE_NAME] as string == BattleSystemData.SYSTEM)
                            {
                                this.system.type = (BattleSystemType)System.Enum.Parse(
                                        typeof(BattleSystemType), (string)val["type"]);
                                if(val.ContainsKey("enemycounting"))
                                {
                                    this.system.enemyCounting = (EnemyCounting)System.Enum.Parse(
                                            typeof(EnemyCounting), (string)val["enemycounting"]);
                                }
                                this.system.turnCalc = int.Parse((string)val["turncalc"]);
                                if(val.ContainsKey("starttimecalc")) this.system.startTimeCalc = int.Parse((string)val["starttimecalc"]);
                                this.system.defendFormula = int.Parse((string)val["defendformula"]);
                                this.system.escapeFormula = int.Parse((string)val["escapeformula"]);
                                this.system.actionBorder = int.Parse((string)val["actionborder"]);
                                if(val.ContainsKey("menuborder"))
                                {
                                    this.system.menuBorder = int.Parse((string)val["menuborder"]);
                                }
                                else this.system.menuBorder = this.system.actionBorder;
                                if(val.ContainsKey("maxtimebar"))
                                {
                                    this.system.maxTimebar = int.Parse((string)val["maxtimebar"]);
                                }
                                else this.system.maxTimebar = this.system.actionBorder;

                                if(val.ContainsKey("enablemultichoice")) this.system.enableMultiChoice = true;
                                if(val.ContainsKey("useallactions")) this.system.useAllActions = true;

                                if(val.ContainsKey("usetimebaraction"))
                                {
                                    this.system.useTimebarAction = (UseTimebarAction)System.Enum.Parse(
                                            typeof(UseTimebarAction), (string)val["usetimebaraction"]);
                                }

                                this.system.activeCommand = bool.Parse((string)val["activecommand"]);
                                this.system.actionPause = bool.Parse((string)val["actionpause"]);
                                if(val.ContainsKey("dynamiccombat"))
                                {
                                    this.system.dynamicCombat = true;
                                    if(val.ContainsKey("mintimebetween"))
                                    {
                                        this.system.minTimeBetween = float.Parse((string)val["mintimebetween"]);
                                    }
                                }
                                if(val.ContainsKey("playdamageanim")) this.system.playDamageAnim = true;
                                if(val.ContainsKey("blockautoatkmenu")) this.system.blockAutoAttackMenu = true;
                                if(val.ContainsKey("turnbonuses"))
                                {
                                    this.system.turnBonuses = true;
                                    this.system.statusBonus = new int[int.Parse((string)val["turnbonuses"])];
                                }
                                if(val.ContainsKey("revivesets"))
                                {
                                    this.system.reviveAfterBattle = true;
                                    int count = int.Parse((string)val["revivesets"]);
                                    this.system.reviveSetStatus = new bool[count];
                                    this.system.reviveStatus = new int[count];
                                }
                                if(val.ContainsKey("startstatuses"))
                                {
                                    this.system.startBattleStatusSettings = true;
                                    int count = int.Parse((string)val["startstatuses"]);
                                    this.system.startSetStatus = new bool[count];
                                    this.system.startStatus = new int[count];
                                }
                                if(val.ContainsKey("endstatuses"))
                                {
                                    this.system.endBattleStatusSettings = true;
                                    int count = int.Parse((string)val["endstatuses"]);
                                    this.system.endSetStatus = new bool[count];
                                    this.system.endStatus = new int[count];
                                }
                                if(val.ContainsKey("attacktimebaruse"))
                                {
                                    this.system.attackEndTurn = false;
                                    this.system.attackTimebarUse = float.Parse((string)val["attacktimebaruse"]);
                                }
                                if(val.ContainsKey("itemtimebaruse"))
                                {
                                    this.system.itemEndTurn = false;
                                    this.system.itemTimebarUse = float.Parse((string)val["itemtimebaruse"]);
                                }
                                if(val.ContainsKey("defendtimebaruse"))
                                {
                                    this.system.defendEndTurn = false;
                                    this.system.defendTimebarUse = float.Parse((string)val["defendtimebaruse"]);
                                }
                                if(val.ContainsKey("escapetimebaruse"))
                                {
                                    this.system.escapeEndTurn = false;
                                    this.system.escapeTimebarUse = float.Parse((string)val["escapetimebaruse"]);
                                }
                                if(val.ContainsKey("atbtickinterval"))
                                {
                                    this.system.atbTickInterval = float.Parse((string)val["atbtickinterval"]);
                                }
                                if(val.ContainsKey("battlerange"))
                                {
                                    this.system.battleRange = float.Parse((string)val["battlerange"]);
                                }
                                if(val.ContainsKey("airange"))
                                {
                                    this.system.aiRange = float.Parse((string)val["airange"]);
                                }
                                if(val.ContainsKey("airechecktime"))
                                {
                                    this.system.aiRecheckTime = float.Parse((string)val["airechecktime"]);
                                }
                                if(val.ContainsKey("blockcontrolmenu")) this.system.blockControlMenu = true;
                                if(val.ContainsKey("blockcontrolaction")) this.system.blockControlAction = true;
                                if(val.ContainsKey("blockmse")) this.system.blockMSE = true;
                                if(val.ContainsKey("freezeaction")) this.system.freezeAction = true;

                                if(val.ContainsKey("enemyspots"))
                                {
                                    this.system.enemySpot = new Vector3[int.Parse((string)val["enemyspots"])];
                                    this.system.enemySpotPA = new Vector3[this.system.enemySpot.Length];
                                    this.system.enemySpotEA = new Vector3[this.system.enemySpot.Length];
                                }
                                if(val.ContainsKey("spotdistance"))
                                {
                                    this.system.spotOnGround = true;
                                    this.system.spotDistance = float.Parse((string)val["spotdistance"]);
                                    this.system.spotLayer = int.Parse((string)val["spotlayer"]);
                                    if(val.ContainsKey("spotx"))
                                    {
                                        this.system.spotOffset = VectorHelper.FromHashtable(val, "spotx", "spoty", "spotz");
                                    }
                                }
                                if(val.ContainsKey("enablepaspots")) this.system.enablePASpots = true;
                                if(val.ContainsKey("enableeaspots")) this.system.enableEASpots = true;

                                if(val.ContainsKey(XMLHandler.NODES))
                                {
                                    ArrayList s = val[XMLHandler.NODES] as ArrayList;
                                    foreach(Hashtable ht in s)
                                    {
                                        if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BONUS)
                                        {
                                            this.system.statusBonus[int.Parse((string)ht["id"])] = int.Parse((string)ht["value"]);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.REVIVE)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            this.system.reviveSetStatus[id] = true;
                                            this.system.reviveStatus[id] = int.Parse((string)ht["value"]);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.STARTSTATUS)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            this.system.startSetStatus[id] = true;
                                            this.system.startStatus[id] = int.Parse((string)ht["value"]);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ENDSTATUS)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            this.system.endSetStatus[id] = true;
                                            this.system.endStatus[id] = int.Parse((string)ht["value"]);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.PARTYADVANTAGE)
                                        {
                                            this.system.partyAdvantage.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ENEMIESADVANTAGE)
                                        {
                                            this.system.enemiesAdvantage.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.PARTYSPOT)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.system.partySpot.Length)
                                            {
                                                this.system.partySpot[id] = VectorHelper.FromHashtable(ht);
                                                if(ht.ContainsKey("pax"))
                                                {
                                                    this.system.partySpotPA[id] = VectorHelper.FromHashtable(ht, "pax", "pay", "paz");
                                                }
                                                if(ht.ContainsKey("eax"))
                                                {
                                                    this.system.partySpotEA[id] = VectorHelper.FromHashtable(ht, "eax", "eay", "eaz");
                                                }
                                            }
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ENEMYSPOT)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.system.enemySpot.Length)
                                            {
                                                this.system.enemySpot[id] = VectorHelper.FromHashtable(ht);
                                                if(ht.ContainsKey("pax"))
                                                {
                                                    this.system.enemySpotPA[id] = VectorHelper.FromHashtable(ht, "pax", "pay", "paz");
                                                }
                                                if(ht.ContainsKey("eax"))
                                                {
                                                    this.system.enemySpotEA[id] = VectorHelper.FromHashtable(ht, "eax", "eay", "eaz");
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            else if(val[XMLHandler.NODE_NAME] as string == BattleSystemData.MENU)
                            {
                                if(val.ContainsKey("dialogueposition")) this.menu.dialoguePosition = int.Parse((string)val["dialogueposition"]);
                                if(val.ContainsKey("targetposition")) this.menu.targetPosition = int.Parse((string)val["targetposition"]);
                                if(val.ContainsKey("skillposition")) this.menu.skillPosition = int.Parse((string)val["skillposition"]);
                                if(val.ContainsKey("itemposition")) this.menu.itemPosition = int.Parse((string)val["itemposition"]);
                                if(val.ContainsKey("showattack")) this.menu.showAttack = bool.Parse((string)val["showattack"]);
                                if(val.ContainsKey("showskills")) this.menu.showSkills = bool.Parse((string)val["showskills"]);
                                if(val.ContainsKey("combineskills")) this.menu.combineSkills = bool.Parse((string)val["combineskills"]);
                                if(val.ContainsKey("showitems")) this.menu.showItems = bool.Parse((string)val["showitems"]);
                                if(val.ContainsKey("combineitems")) this.menu.combineItems = bool.Parse((string)val["combineitems"]);
                                if(val.ContainsKey("showdefend")) this.menu.showDefend = bool.Parse((string)val["showdefend"]);
                                if(val.ContainsKey("showescape")) this.menu.showEscape = bool.Parse((string)val["showescape"]);
                                if(val.ContainsKey("showendturn")) this.menu.showEndTurn = bool.Parse((string)val["showendturn"]);
                                if(val.ContainsKey("attackicon")) this.menu.attackIconName = val["attackicon"] as string;
                                if(val.ContainsKey("skillicon")) this.menu.skillIconName = val["skillicon"] as string;
                                if(val.ContainsKey("itemicon")) this.menu.itemIconName = val["itemicon"] as string;
                                if(val.ContainsKey("defendicon")) this.menu.defendIconName = val["defendicon"] as string;
                                if(val.ContainsKey("escapeicon")) this.menu.escapeIconName = val["escapeicon"] as string;
                                if(val.ContainsKey("drag")) this.menu.enableDrag = true;
                                if(val.ContainsKey("doubleclick")) this.menu.enableDoubleClick = true;
                                if(val.ContainsKey("addback")) this.menu.addBack = true;
                                if(val.ContainsKey("backfirst")) this.menu.backFirst = true;
                                this.menu.mouseTouch.SetData(val);

                                if(val.ContainsKey("order")) this.menu.SetOrder(val["order"] as string);

                                if(val.ContainsKey(XMLHandler.NODES))
                                {
                                    ArrayList s = val[XMLHandler.NODES] as ArrayList;
                                    foreach(Hashtable ht in s)
                                    {
                                        if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BACK)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.menu.backName.Count) this.menu.backName[id] = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ATTACK)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.menu.attackName.Count) this.menu.attackName[id] = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.SKILL)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.menu.skillName.Count) this.menu.skillName[id] = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ITEM)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.menu.itemName.Count) this.menu.itemName[id] = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.DEFEND)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.menu.defendName.Count) this.menu.defendName[id] = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ESCAPE)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.menu.escapeName.Count) this.menu.escapeName[id] = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ENDTURN)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.menu.endTurnName.Count) this.menu.endTurnName[id] = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BACKICON)
                                        {
                                            this.menu.backIconName = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ATTACKICON)
                                        {
                                            this.menu.attackIconName = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.SKILLICON)
                                        {
                                            this.menu.skillIconName = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ITEMICON)
                                        {
                                            this.menu.itemIconName = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.DEFENDICON)
                                        {
                                            this.menu.defendIconName = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ESCAPEICON)
                                        {
                                            this.menu.escapeIconName = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ENDTURNICON)
                                        {
                                            this.menu.endTurnIconName = (string)ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.CURSOR)
                                        {
                                            this.menu.useTargetCursor = true;
                                            this.menu.cursorPrefabName = ht[XMLHandler.CONTENT] as string;
                                            this.menu.cursorOffset.x = float.Parse((string)ht["cox"]);
                                            this.menu.cursorOffset.y = float.Parse((string)ht["coy"]);
                                            this.menu.cursorOffset.z = float.Parse((string)ht["coz"]);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.CURSORCHILD)
                                        {
                                            this.menu.cursorChildName = ht[XMLHandler.CONTENT] as string;
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.TARGET)
                                        {
                                            this.menu.useTargetMenu = bool.Parse((string)ht["targetmenu"]);
                                            this.menu.useTargetBlink = bool.Parse((string)ht["targetblink"]);
                                            if(this.menu.useTargetBlink)
                                            {
                                                if(ht.ContainsKey("fromcurrent")) this.menu.fromCurrent = true;
                                                this.menu.blinkChildren = bool.Parse((string)ht["children"]);
                                                this.menu.blinkTime = float.Parse((string)ht["time"]);
                                                this.menu.blinkInterpolation = (EaseType)System.Enum.Parse(typeof(EaseType), (string)ht["interpolation"]);
                                                if(ht.ContainsKey("as"))
                                                {
                                                    this.menu.aBlink = true;
                                                    this.menu.aStart = float.Parse((string)ht["as"]);
                                                    this.menu.aEnd = float.Parse((string)ht["ae"]);
                                                }
                                                if(ht.ContainsKey("rs"))
                                                {
                                                    this.menu.rBlink = true;
                                                    this.menu.rStart = float.Parse((string)ht["rs"]);
                                                    this.menu.rEnd = float.Parse((string)ht["re"]);
                                                }
                                                if(ht.ContainsKey("gs"))
                                                {
                                                    this.menu.gBlink = true;
                                                    this.menu.gStart = float.Parse((string)ht["gs"]);
                                                    this.menu.gEnd = float.Parse((string)ht["ge"]);
                                                }
                                                if(ht.ContainsKey("bs"))
                                                {
                                                    this.menu.bBlink = true;
                                                    this.menu.bStart = float.Parse((string)ht["bs"]);
                                                    this.menu.bEnd = float.Parse((string)ht["be"]);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            else if(val[XMLHandler.NODE_NAME] as string == BattleSystemData.TEXT)
                            {
                                this.showUserDamage = bool.Parse((string)val["showuserdamage"]);
                                if(val.ContainsKey("mounttexts")) this.mountTexts = true;

                                if(val.ContainsKey("bmpos"))
                                {
                                    this.showBattleMessage = true;
                                    this.battleMessagePosition = int.Parse((string)val["bmpos"]);
                                    this.battleMessageShowTime = float.Parse((string)val["bmtime"]);
                                }

                                if(val.ContainsKey("bscolor"))
                                {
                                    this.battleStartColor = int.Parse((string)val["bscolor"]);
                                    this.battleStartSColor = int.Parse((string)val["bsshadowcolor"]);
                                }
                                if(val.ContainsKey("bvcolor"))
                                {
                                    this.battleVictoryColor = int.Parse((string)val["bvcolor"]);
                                    this.battleVictorySColor = int.Parse((string)val["bvshadowcolor"]);
                                }
                                if(val.ContainsKey("bdcolor"))
                                {
                                    this.battleDefeatColor = int.Parse((string)val["bdcolor"]);
                                    this.battleDefeatSColor = int.Parse((string)val["bdshadowcolor"]);
                                }
                                if(val.ContainsKey("becolor"))
                                {
                                    this.battleEscapeColor = int.Parse((string)val["becolor"]);
                                    this.battleEscapeSColor = int.Parse((string)val["beshadowcolor"]);
                                }

                                if(val.ContainsKey(XMLHandler.NODES))
                                {
                                    ArrayList s = val[XMLHandler.NODES] as ArrayList;
                                    foreach(Hashtable ht in s)
                                    {
                                        if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.INFO)
                                        {
                                            this.showInfo = true;
                                            this.infoPosition = int.Parse((string)ht["position"]);
                                            this.infoShowTime = float.Parse((string)ht["time"]);
                                            if(ht.ContainsKey("showskills")) this.showSkills = bool.Parse((string)ht["showskills"]);
                                            if(ht.ContainsKey("showitems")) this.showItems = bool.Parse((string)ht["showitems"]);
                                            if(ht.ContainsKey("showdefend")) this.showDefend = bool.Parse((string)ht["showdefend"]);
                                            if(ht.ContainsKey("showescape")) this.showEscape = bool.Parse((string)ht["showescape"]);
                                            if(ht.ContainsKey("showcounter")) this.showCounter = bool.Parse((string)ht["showcounter"]);
                                            if(ht.ContainsKey("showstealitem")) this.showStealItem = bool.Parse((string)ht["showstealitem"]);
                                            if(ht.ContainsKey("showstealitemfail")) this.showStealItemFail = bool.Parse((string)ht["showstealitemfail"]);
                                            if(ht.ContainsKey("showstealmoney")) this.showStealMoney = bool.Parse((string)ht["showstealmoney"]);
                                            if(ht.ContainsKey("showstealmoneyfail")) this.showStealMoneyFail = bool.Parse((string)ht["showstealmoneyfail"]);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.DAMAGE)
                                        {
                                            DataHolder.StatusValues().AddDamageTextSettings(int.Parse((string)ht["id"]), ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.REFRESH)
                                        {
                                            DataHolder.StatusValues().AddRefreshTextSettings(int.Parse((string)ht["id"]), ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.EFFECT)
                                        {
                                            this.effectTextSettings.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.MISSSETTINGS)
                                        {
                                            this.missTextSettings.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.MISS)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.missTextSettings.text.Length)
                                            {
                                                this.missTextSettings.text[id] = ht[XMLHandler.CONTENT] as string;
                                            }
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.COUNTER)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.counterText.Count) this.counterText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ALLIES)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.allAlliesText.Count) this.allAlliesText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.ENEMIES)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.allEnemiesText.Count) this.allEnemiesText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLESTART)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.battleStartText.Count) this.battleStartText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLEVICTORY)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.battleVictoryText.Count) this.battleVictoryText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLEDEFEAT)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.battleDefeatText.Count) this.battleDefeatText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLEESCAPE)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.battleEscapeText.Count) this.battleEscapeText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.SKIN)
                                        {
                                            this.textSkinName = ht[XMLHandler.CONTENT] as string;
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.CASTCANCEL)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.castCancelTextSettings.text.Length)
                                            {
                                                this.castCancelTextSettings.text[id] = ht[XMLHandler.CONTENT] as string;
                                            }
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.LEVELUP)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.levelUpTextSettings.text.Length)
                                            {
                                                this.levelUpTextSettings.text[id] = ht[XMLHandler.CONTENT] as string;
                                            }
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.CASTCANCELSETTINGS)
                                        {
                                            this.castCancelTextSettings.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.LEVELUPSETTINGS)
                                        {
                                            this.levelUpTextSettings.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.CLASSLEVELUPSETTINGS)
                                        {
                                            this.classLevelUpTextSettings.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.BLOCKSETTINGS)
                                        {
                                            this.blockTextSettings.SetData(ht);
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.STEALITEM)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.stealItemText.Count) this.stealItemText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.STEALITEMFAIL)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.stealItemFailText.Count) this.stealItemFailText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.STEALMONEY)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.stealMoneyText.Count) this.stealMoneyText[id] = ht[XMLHandler.CONTENT];
                                        }
                                        else if(ht[XMLHandler.NODE_NAME] as string == BattleSystemData.STEALMONEYFAIL)
                                        {
                                            int id = int.Parse((string)ht["id"]);
                                            if(id < this.stealMoneyFailText.Count) this.stealMoneyFailText[id] = ht[XMLHandler.CONTENT];
                                        }
                                    }
                                }
                            }
                            else if(val[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLEEND)
                            {
                                this.end.SetData(val);
                            }
                            else if(val[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLECAM)
                            {
                                this.cam.SetData(val);
                            }
                            else if(val[XMLHandler.NODE_NAME] as string == BattleSystemData.BATTLECONTROL)
                            {
                                this.control.SetData(val);
                            }
                        }
                    }
                }
            }
        }
    }