void Start()
 {
     empty = new UnitSkillDetail();
     checking = false;
     gotChest = new List<GameObject>();
     gotDoor = new List<GameObject>();
 }
예제 #2
0
    public static void TalktoMe(UnitSkillDetail u)
    {
        UnitMonsterTells ghost = new UnitMonsterTells();

        ghost.monsterName = "Ghost";
        ghost.description = "Ghosts: ghosts are strong against physical damage due to being intangible, but weak against magic and especially holy magic! Give that a try";
        u.monsterTells.Add(ghost);
    }
예제 #3
0
 public UnitClassSkill()
 {
     skill1  = new UnitSkillDetail();
     skill2  = new UnitSkillDetail();
     skill3  = new UnitSkillDetail();
     skill4  = new UnitSkillDetail();
     skill5  = new UnitSkillDetail();
     skill6  = new UnitSkillDetail();
     skill7  = new UnitSkillDetail();
     skill8  = new UnitSkillDetail();
     skill9  = new UnitSkillDetail();
     skill10 = new UnitSkillDetail();
     skill11 = new UnitSkillDetail();
     skill12 = new UnitSkillDetail();
 }
예제 #4
0
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail darkness = new UnitSkillDetail();

        darkness.name                  = "Darkness";
        darkness.range                 = 4;
        darkness.magicDamage           = true;
        darkness.effects.darkDamage    = true;
        darkness.effects.hitrateReduce = true;
        darkness.attackPattern         = "cross";


        UnitSkillDetail darkrift = new UnitSkillDetail();

        darkrift.name               = "Darkrift";
        darkrift.magicDamage        = true;
        darkrift.effects.darkDamage = true;
        darkrift.effects.shaken     = true;
        darkrift.range              = 4;
        darkrift.attackPattern      = "4tileLine";


        UnitSkillDetail crushingDarkness = new UnitSkillDetail();

        crushingDarkness.name           = "Crushing Darkness";
        crushingDarkness.effects.fourth = true;
        crushingDarkness.range          = 4;


        UnitSkillDetail sacrificialBlade = new UnitSkillDetail();

        sacrificialBlade.range = 1;
        sacrificialBlade.effects.selfDamage = true;//take 1/4 damage dealt
        sacrificialBlade.magicDamage        = true;
        sacrificialBlade.effects.darkDamage = true;
        sacrificialBlade.extraDamageMod     = 1.2f;
        sacrificialBlade.name = "Sacrificial Blade";


        UnitSkillDetail demonArmor = new UnitSkillDetail();

        demonArmor.name  = "Demon Armor";
        demonArmor.range = 0;
        demonArmor.effects.selfDamage      = true;
        demonArmor.effects.damageReduction = true;//decrease all damage taken for 3 turns


        UnitSkillDetail growingDarkness = new UnitSkillDetail();

        growingDarkness.name               = "Growing Darkness";
        growingDarkness.range              = 0;
        growingDarkness.effects.counter    = true;
        growingDarkness.magicDamage        = true;
        growingDarkness.effects.darkDamage = true;


        UnitSkillDetail resurgence = new UnitSkillDetail();

        resurgence.name    = "Resurgence";
        resurgence.range   = 0;
        resurgence.restore = 1 / 4;//heal 1/4 health


        if (sk == darkness.name)
        {
            u.skill1 = darkness;
        }
        else if (sk == darkrift.name)
        {
            u.skill2 = darkrift;
        }
        else if (sk == crushingDarkness.name)
        {
            u.skill3 = crushingDarkness;
        }
        else if (sk == sacrificialBlade.name)
        {
            u.skill4 = sacrificialBlade;
        }
        else if (sk == demonArmor.name)
        {
            u.skill5 = demonArmor;
        }
        else if (sk == growingDarkness.name)
        {
            u.skill6 = growingDarkness;
        }
        else if (sk == resurgence.name)
        {
            u.skill7 = resurgence;
        }

        else if (sk == "HeavyBladesMaster1")
        {
            un.unitInfo.weaponRanks.HeavyBlade.canUse = true;
            un.unitInfo.weaponRanks.HeavyBlade.rank   = 3;
        }
        else if (sk == "AxesMaster1")
        {
            un.unitInfo.weaponRanks.Axe.canUse = true;
            un.unitInfo.weaponRanks.Axe.rank   = 3;
        }
    }
예제 #5
0
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail burningMelody = new UnitSkillDetail();

        burningMelody.name = "Burning Melody";
        burningMelody.effects.fireDamage = true;
        burningMelody.effects.berserk    = true;
        burningMelody.magicDamage        = true;
        burningMelody.range         = 4;
        burningMelody.attackPattern = "cross";


        UnitSkillDetail hymnOfFrozenLoss = new UnitSkillDetail();

        hymnOfFrozenLoss.name = "Frozen Dirge";
        hymnOfFrozenLoss.effects.waterDamage = true;
        hymnOfFrozenLoss.magicDamage         = true;
        hymnOfFrozenLoss.effects.stun        = true;
        hymnOfFrozenLoss.range         = 4;
        hymnOfFrozenLoss.attackPattern = "4tileLine";

        UnitSkillDetail thunderAnthem = new UnitSkillDetail();

        thunderAnthem.name = "Thunder Anthem";
        thunderAnthem.effects.natureDamage = true;
        thunderAnthem.effects.confuse      = true;
        thunderAnthem.magicDamage          = true;
        thunderAnthem.range         = 4;
        thunderAnthem.attackPattern = "3x3cone";

        UnitSkillDetail songOfLife = new UnitSkillDetail();

        songOfLife.restore            = 1;//restore half magic stat life
        songOfLife.range              = 3;
        songOfLife.effects.statusHeal = true;
        songOfLife.attackPattern      = "cross";
        songOfLife.name = "Song of Life";


        UnitSkillDetail riddleOfSteel = new UnitSkillDetail();

        riddleOfSteel.name = "Riddle of Steel";
        riddleOfSteel.effects.attackBoost  = true; //
        riddleOfSteel.effects.defenseBoost = true; //
        riddleOfSteel.range = 4;

        UnitSkillDetail dirgeOfSpelldeath = new UnitSkillDetail();

        dirgeOfSpelldeath.name  = "Dirge of Spelldeath";
        dirgeOfSpelldeath.range = 4;
        dirgeOfSpelldeath.effects.reduceAttack  = true;
        dirgeOfSpelldeath.effects.reduceDefense = true;
        dirgeOfSpelldeath.magicDamage           = true;
        dirgeOfSpelldeath.effects.darkDamage    = true;

        UnitSkillDetail raptureOfTheSong = new UnitSkillDetail();

        raptureOfTheSong.name    = "Rapture of the Song";
        raptureOfTheSong.support = true;
        raptureOfTheSong.effects.magicDefenseBoost = true;
        raptureOfTheSong.effects.defenseBoost      = true;//increase debuff duration

        UnitSkillDetail talkToMe = new UnitSkillDetail();

        talkToMe.name            = "Talk to Me!";
        talkToMe.range           = 4;
        talkToMe.effects.analyze = true;//learn monster strengths and weaknesses TalktoMe(talkToMe);

        if (sk == burningMelody.name)
        {
            u.skill8 = burningMelody;
        }
        else if (sk == hymnOfFrozenLoss.name)
        {
            u.skill2 = hymnOfFrozenLoss;
        }
        else if (sk == thunderAnthem.name)
        {
            u.skill3 = thunderAnthem;
        }
        else if (sk == songOfLife.name)
        {
            u.skill4 = songOfLife;
        }
        else if (sk == riddleOfSteel.name)
        {
            u.skill5 = riddleOfSteel;
        }
        else if (sk == dirgeOfSpelldeath.name)
        {
            u.skill6 = dirgeOfSpelldeath;
        }
        else if (sk == raptureOfTheSong.name)
        {
            u.skill7 = raptureOfTheSong;
        }
        else if (sk == talkToMe.name)
        {
            u.skill1 = talkToMe;
        }

        else if (sk == "AthamesMaster1")
        {
            un.unitInfo.weaponRanks.Athames.canUse = true;
            un.unitInfo.weaponRanks.Athames.rank   = 3;
        }
        else if (sk == "LightBladesMaster1")
        {
            un.unitInfo.weaponRanks.LightBlades.canUse = true;
            un.unitInfo.weaponRanks.LightBlades.rank   = 3;
        }
    }
    void OnGUI()
    {

        GUILayout.BeginArea(new Rect(0, 0, Screen.width / 2, Screen.height/2));
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.BeginVertical();
        GUILayout.FlexibleSpace();

        if (currentMenu == Menu.HomeMenu)
        {
            if (GUILayout.Button("Select Action"))
            {
                currentMenu = Menu.SkillSelection;
            }
            if (GUILayout.Button("Use Item"))
            {
                currentMenu = Menu.Items;
            }

            GUILayout.Space(10);
            if (GUILayout.Button("Exit Menu"))
            {
                menuPar.SetActive(false);
            }
        }


        else if (currentMenu == Menu.SkillSelection)
        {

            GUILayout.BeginArea(new Rect(0, 0, Screen.width / 2, Screen.height * 1.5f));
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.BeginVertical();
            GUILayout.FlexibleSpace();
            //  GUILayout.Space(10);
            scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true, GUILayout.Width(Screen.width / 2f), GUILayout.Height(Screen.height * 1.5f));

            turnCon = GameObject.FindObjectOfType<SpeedCenterTurns>();
            unitObj = turnCon.activeUnit;
            unit = unitObj.GetComponent<Stats>().FindMyself();
            attack = unitObj.GetComponent<MapPlayerAttack>();
            UnitWeapon weapon = FindEquippedWeapon();
            if (weapon.equipped)
            {
                if (GUILayout.Button("Attack with " + weapon.name))
                {

                    attack.attackArea = weapon.details.range;
                    attack.weapon = weapon;
                    attack.ShowAttack();
                    checking = false;
                    currentMenu = Menu.HomeMenu;
                    menuPar.SetActive(false);
                }
                if (weapon.details.physical) GUILayout.Label("Physical Damage");
                if (weapon.details.magic) GUILayout.Label("Magic Damage");
                if (weapon.details.effects.poison) GUILayout.Label("Poison");
                if (weapon.details.effects.fireDamage) GUILayout.Label("Fire Damage");
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill1.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill1;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill1;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }

                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill2.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill2;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill2;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }

            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill3.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill3;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = u;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }

            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill4.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill4;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill4;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill5.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill5;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill5;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill6.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill6;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill6;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill7.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill7;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill7;
                        checking = true;

                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill8.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill8;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill8;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;

                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill9.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill9;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill9;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill10.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill10;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill10;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill11.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill11;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill11;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(3);
            if (unit.unitInfo.main.pickSkill.skill12.name != "")
            {
                UnitSkillDetail u = unit.unitInfo.main.pickSkill.skill12;
                if (!checking)
                {
                    if (GUILayout.Button(u.name))
                    {
                        attack.currentAttack = unit.unitInfo.main.pickSkill.skill12;
                        checking = true;
                    }
                    if (u.physicalDamage) GUILayout.Label("Physical Damage");
                    if (u.magicDamage) GUILayout.Label("Magic Damage");
                    if (u.effects.poison) GUILayout.Label("Poison");
                    if (u.effects.fireDamage) GUILayout.Label("Fire Damage");
                }
                else if (attack.currentAttack == u)
                {
                    if (GUILayout.Button("Yes use " + u.name))
                    {
                        attack.UniqueAttack();
                        checking = false;
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                    if (GUILayout.Button("No"))
                    {
                        attack.currentAttack = empty;
                        checking = false;
                    }

                }
            }
            GUILayout.Space(10);
            if (GUILayout.Button("Exit Menu"))
            {
                checking = false;
                attack.currentAttack = empty;
                currentMenu = Menu.HomeMenu;
                menuPar.SetActive(false);

            }
            GUILayout.Label("", GUILayout.Width(Screen.width / 2.3f), GUILayout.Height(Screen.height * 1.5f));
            GUILayout.EndScrollView();
            GUILayout.FlexibleSpace();
            GUILayout.EndVertical();
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.EndArea();
        }



        else if (currentMenu == Menu.Items)
        {
            GUILayout.BeginArea(new Rect(0, 0, Screen.width / 2, Screen.height / 2f));
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.BeginVertical();
            GUILayout.FlexibleSpace();
            GUILayout.Space(10);
            scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true, GUILayout.Width(Screen.width / 2f), GUILayout.Height(Screen.height * 1.5f));

            turnCon = GameObject.FindObjectOfType<SpeedCenterTurns>();
            unitObj = turnCon.activeUnit;
         
            unit = unitObj.GetComponent<Stats>().FindMyself();
    
            attack = unitObj.GetComponent<MapPlayerAttack>();
            EquipmentOwned e = CurrentGame.game.memoryGeneral.itemsOwned;
            ItemHolder potionSmall = CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Potion Small");
            ItemHolder potionLarge = CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Potion Large");
            ItemHolder chestKey = CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Chest Key");
            ItemHolder doorKey = CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Door Key");
            if (potionSmall.count > 0)
            {
                if (GUILayout.Button("Potion Small " + "x " + potionSmall.count))
                {
                    unitObj.GetComponent<Stats>().currentHp += potionSmall.effects.effectBase;
                    unitObj.GetComponent<Stats>().HealHp(potionSmall.effects.effectBase);
                    unitObj.GetComponent<Stats>().UpdateHp();
                    CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Potion Small").count--;
                    attack.AssignMe();
                    MapManager manager = GameObject.FindObjectOfType<MapManager>();
                    manager.PlayerSkill();
                    currentMenu = Menu.HomeMenu;
                    menuPar.SetActive(false);
                }

            }
            else
            {
                GUILayout.Label("Potion Small x 0");
            }

            if (potionLarge.count > 0)
            {
                if (GUILayout.Button("Potion Large " + "x " + potionLarge.count))
                {
                    unitObj.GetComponent<Stats>().currentHp += potionLarge.effects.effectBase;
                    unitObj.GetComponent<Stats>().HealHp(potionLarge.effects.effectBase);
                    unitObj.GetComponent<Stats>().UpdateHp();
                    CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Potion Large").count--;
                    attack.AssignMe();
                    MapManager manager = GameObject.FindObjectOfType<MapManager>();
                    manager.PlayerSkill();
                    currentMenu = Menu.HomeMenu;
                    menuPar.SetActive(false);
                }

            }
            else
            {
                GUILayout.Label("Potion Lagre x 0");
            }

            if (chestKey.count > 0)
            {
                if (SomethingClose("Chest", unitObj))
                {
                    if (GUILayout.Button("Chest Key " + "x " + chestKey.count))
                    {

                        float nextTo = 1.9f;
                        List<GameObject> newTargets = new List<GameObject>();
                        gotChest.Clear();
                        AssignArray(newTargets, "Chest");
                        foreach (GameObject obj in newTargets)
                        {
                            float d = Vector3.Distance(GameObject.Find(unitObj.name).transform.position, obj.transform.position);
                            Debug.Log(d + " the space between us");
                            if (nextTo >= d) gotChest.Add(obj);
                        }
                    }           
                }
                else
                {
                    GUILayout.Box("No Nearby Chests");
                    GUILayout.Label("Chest Key " + "x " + chestKey.count);
                }

            }
            else
            {
                GUILayout.Label("Chest Key x 0");
            }
            if (gotChest.Count > 0)
            {
                foreach (GameObject obj in gotChest)
                {
                    if (GUILayout.Button("Open Chest " + obj.name))
                    {
                        obj.GetComponent<ChestRewards>().RandomReward();
                        CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Chest Key").count--;
                        attack.AssignMe();
                        MapManager manager = GameObject.FindObjectOfType<MapManager>();
                        manager.PlayerSkill();
                        gotChest.Clear();
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                }
                if (GUILayout.Button("Dont Use Key"))
                {
                    gotChest.Clear();
                }
            }

            if (doorKey.count > 0)
            {
                if (SomethingClose("Door", unitObj))
                {
                    if (GUILayout.Button("Door Key " + "x " + doorKey.count))
                    {
                        float nextTo = 1.9f;
                        List<GameObject> newTargets = new List<GameObject>();
                        gotDoor.Clear();
                        AssignArray(newTargets, "Door");
                        foreach (GameObject obj in newTargets)
                        {
                            float d = Vector3.Distance(GameObject.Find(unitObj.name).transform.position, obj.transform.position);
                            Debug.Log(d + " the space between us now");
                            if (nextTo >= d)
                            {
                                Debug.Log("Success now");
                                gotDoor.Add(obj);
                            }
                        }
                     
                    }
                  
                }
                else
                {
                    GUILayout.Box("No Nearby Doors");
                    GUILayout.Label("Door Key " + "x " + chestKey.count);
                }

            }
            else
            {
                GUILayout.Label("Door Key x 0");
            }
            if (gotDoor.Count > 0)
            {
                foreach (GameObject obj in gotDoor)
                {
                    if (GUILayout.Button("Open Door " + obj.name))
                    {
                        obj.GetComponent<LockedDoors>().OpenTheWay();
                        CurrentGame.game.memoryGeneral.itemsOwned.items.Find(x => x.name == "Door Key").count--;
                        attack.AssignMe();
                        MapManager manager = GameObject.FindObjectOfType<MapManager>();
                        manager.PlayerSkill();
                        gotDoor.Clear();
                        currentMenu = Menu.HomeMenu;
                        menuPar.SetActive(false);
                    }
                }
                if (GUILayout.Button("Dont Use Key"))
                {
                    gotDoor.Clear();
                }


            }
            GUILayout.Space(10);
            if (GUILayout.Button("Exit Menu"))
            {
                checking = false;
                currentMenu = Menu.HomeMenu;
                menuPar.SetActive(false);

            }
            GUILayout.Label("", GUILayout.Width(Screen.width / 2f), GUILayout.Height(Screen.height * 1.5f));
            GUILayout.EndScrollView();
            GUILayout.FlexibleSpace();
            GUILayout.EndVertical();
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.EndArea();

        }


            GUILayout.FlexibleSpace();
            GUILayout.EndVertical();
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.EndArea();
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail endarken = new UnitSkillDetail();

        endarken.name  = "Endarken";
        endarken.range = 4;
        endarken.effects.darkDamage = true;//buff ally's weapon with dark damage


        UnitSkillDetail darkbolt = new UnitSkillDetail();

        darkbolt.name               = "Darkbolt";
        darkbolt.magicDamage        = true;
        darkbolt.effects.holyDamage = true;
        darkbolt.range              = 4;


        UnitSkillDetail fear = new UnitSkillDetail();

        fear.name           = "Fear";
        fear.effects.shaken = true;
        fear.range          = 4;
        fear.attackPattern  = "cross";


        UnitSkillDetail darkBlast = new UnitSkillDetail();

        darkBlast.range              = 4;
        darkBlast.magicDamage        = true;
        darkBlast.effects.darkDamage = true;
        darkBlast.name          = "Dark Blast";
        darkBlast.attackPattern = "cross";


        UnitSkillDetail viciousness = new UnitSkillDetail();

        viciousness.name                = "Viciousness";
        viciousness.support             = true;
        viciousness.range               = 0;
        viciousness.effects.attackBoost = true;
        viciousness.effects.darkDamage  = true;


        UnitSkillDetail shadePulse = new UnitSkillDetail();

        shadePulse.name                  = "Shade Pulse";
        shadePulse.range                 = 1;
        shadePulse.effects.counter       = true;
        shadePulse.effects.hitrateReduce = true;


        UnitSkillDetail feedTheNight = new UnitSkillDetail();

        feedTheNight.name               = "Feed the Night";
        feedTheNight.range              = 3;
        feedTheNight.extraDamageMod     = 1.5f;
        feedTheNight.effects.darkDamage = true;
        feedTheNight.effects.selfDamage = true;// 1/4 damage dealt


        if (sk == endarken.name)
        {
            u.skill1 = endarken;
        }
        else if (sk == darkbolt.name)
        {
            u.skill2 = darkbolt;
        }
        else if (sk == fear.name)
        {
            u.skill3 = fear;
        }
        else if (sk == darkBlast.name)
        {
            u.skill4 = darkBlast;
        }
        else if (sk == viciousness.name)
        {
            u.skill5 = viciousness;
        }
        else if (sk == shadePulse.name)
        {
            u.skill6 = shadePulse;
        }
        else if (sk == feedTheNight.name)
        {
            u.skill7 = feedTheNight;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail firstBlood = new UnitSkillDetail();

        firstBlood.name           = "First Blood";
        firstBlood.range          = 1;
        firstBlood.physicalDamage = true;
        firstBlood.effects.shaken = true;//buff ally's weapon with dark damage


        UnitSkillDetail daggerThrow = new UnitSkillDetail();

        daggerThrow.name                 = "Dagger Throw";
        daggerThrow.magicDamage          = true;
        daggerThrow.effects.movementDown = true;
        daggerThrow.range                = 4;


        UnitSkillDetail pommelBash = new UnitSkillDetail();

        pommelBash.name            = "Pommel Bash";
        pommelBash.effects.confuse = true;
        pommelBash.range           = 1;
        pommelBash.physicalDamage  = true;


        UnitSkillDetail pierceDefenses = new UnitSkillDetail();

        pierceDefenses.range                 = 1;
        pierceDefenses.physicalDamage        = true;
        pierceDefenses.effects.reduceDefense = true;
        pierceDefenses.name = "Pierce Defenses";


        UnitSkillDetail blitz = new UnitSkillDetail();

        blitz.name             = "Blitz";
        blitz.range            = 1;
        blitz.physicalDamage   = true;
        blitz.effects.extraHit = true;


        UnitSkillDetail riposte = new UnitSkillDetail();

        riposte.name            = "Riposte";
        riposte.range           = 0;
        riposte.effects.counter = true;
        riposte.effects.dodge   = true;


        UnitSkillDetail mainGauche = new UnitSkillDetail();

        mainGauche.name    = "Feed the Night";
        mainGauche.range   = 0;
        mainGauche.support = true;
        mainGauche.effects.damageReduction = true;//reduce damage using second weapons might


        if (sk == firstBlood.name)
        {
            u.skill1 = firstBlood;
        }
        else if (sk == daggerThrow.name)
        {
            u.skill2 = daggerThrow;
        }
        else if (sk == pommelBash.name)
        {
            u.skill3 = pommelBash;
        }
        else if (sk == pierceDefenses.name)
        {
            u.skill4 = pierceDefenses;
        }
        else if (sk == blitz.name)
        {
            u.skill5 = blitz;
        }
        else if (sk == riposte.name)
        {
            u.skill6 = riposte;
        }
        else if (sk == mainGauche.name)
        {
            u.skill7 = mainGauche;
        }

        else if (sk == "CloseMaster1")
        {
            un.unitInfo.weaponRanks.Close.canUse = true;
            un.unitInfo.weaponRanks.Close.rank   = 3;
        }
        else if (sk == "LightBladesMaster1")
        {
            un.unitInfo.weaponRanks.LightBlades.canUse = true;
            un.unitInfo.weaponRanks.LightBlades.rank   = 3;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail pistolWhip = new UnitSkillDetail();

        pistolWhip.name           = "Pistol-Whip";
        pistolWhip.physicalDamage = true;//magic / 2
        pistolWhip.range          = 1;
        pistolWhip.effects.stun   = true;


        UnitSkillDetail targeting = new UnitSkillDetail();

        targeting.name                = "Targeting";
        targeting.support             = true;
        targeting.effects.attackBoost = true;


        UnitSkillDetail deadEye = new UnitSkillDetail();

        deadEye.name = "Deadeye";
        deadEye.effects.critIncrease = true;
        deadEye.physicalDamage       = true;
        deadEye.range = 4;


        UnitSkillDetail backBlast = new UnitSkillDetail();

        backBlast.range              = 4;
        backBlast.attackPattern      = "4tileLine";
        backBlast.effects.fireDamage = true;
        backBlast.magicDamage        = true;//50% life
        backBlast.name = "Backblast";


        UnitSkillDetail cauterize = new UnitSkillDetail();

        cauterize.name  = "Cauterize";
        cauterize.range = 0;
        cauterize.effects.selfDamage = true;
        cauterize.effects.fireDamage = true;
        cauterize.effects.statusHeal = true;


        UnitSkillDetail flashAndFire = new UnitSkillDetail();

        flashAndFire.name                 = "Flash and Fire";
        flashAndFire.range                = 3;
        flashAndFire.attackPattern        = "3x3cone";
        flashAndFire.effects.fireDamage   = true;
        flashAndFire.effects.hitReduction = true;


        UnitSkillDetail recoil = new UnitSkillDetail();

        recoil.name            = "Recoil";
        recoil.support         = true;
        recoil.physicalDamage  = true;
        recoil.effects.counter = true;


        if (sk == pistolWhip.name)
        {
            u.skill1 = pistolWhip;
        }
        else if (sk == targeting.name)
        {
            u.skill2 = targeting;
        }
        else if (sk == deadEye.name)
        {
            u.skill3 = deadEye;
        }
        else if (sk == backBlast.name)
        {
            u.skill4 = backBlast;
        }
        else if (sk == cauterize.name)
        {
            u.skill5 = cauterize;
        }
        else if (sk == flashAndFire.name)
        {
            u.skill6 = flashAndFire;
        }
        else if (sk == recoil.name)
        {
            u.skill7 = recoil;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail descend = new UnitSkillDetail();

        descend.name  = "Descend";
        descend.range = 0;
        descend.effects.attackBoost = true;


        UnitSkillDetail demonEyes = new UnitSkillDetail();

        demonEyes.name           = "Demon Eyes";
        demonEyes.effects.shaken = true;
        demonEyes.range          = 3;


        UnitSkillDetail nightfall = new UnitSkillDetail();

        nightfall.name                  = "Nightfall";
        nightfall.physicalDamage        = true;
        nightfall.effects.hitrateReduce = true;
        nightfall.range                 = 4;


        UnitSkillDetail razorWings = new UnitSkillDetail();

        razorWings.range              = 4;
        razorWings.magicDamage        = true;
        razorWings.effects.darkDamage = true;
        razorWings.attackPattern      = "3x3cone";
        razorWings.name = "Razor Wings";


        UnitSkillDetail hackTheBlack = new UnitSkillDetail();

        hackTheBlack.name  = "Hack The Black";
        hackTheBlack.range = 0;
        hackTheBlack.effects.darkDamage = true;//all attacks deal dark damage instead of physical for 3 turns
        hackTheBlack.support            = true;


        UnitSkillDetail abyssalImpact = new UnitSkillDetail();

        abyssalImpact.name  = "Abyssal Inheritor";
        abyssalImpact.range = 1;
        abyssalImpact.effects.darkDamage = true;
        abyssalImpact.physicalDamage     = true;


        UnitSkillDetail bloodyCall = new UnitSkillDetail();

        bloodyCall.name    = "Bloody Call";
        bloodyCall.support = true;
        bloodyCall.restore = 0;//heal 10% of dark damage you deal


        if (sk == descend.name)
        {
            u.skill1 = descend;
        }
        else if (sk == demonEyes.name)
        {
            u.skill2 = demonEyes;
        }
        else if (sk == nightfall.name)
        {
            u.skill3 = nightfall;
        }
        else if (sk == razorWings.name)
        {
            u.skill4 = razorWings;
        }
        else if (sk == hackTheBlack.name)
        {
            u.skill5 = hackTheBlack;
        }
        else if (sk == abyssalImpact.name)
        {
            u.skill6 = abyssalImpact;
        }
        else if (sk == bloodyCall.name)
        {
            u.skill7 = bloodyCall;
        }
    }
예제 #11
0
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail knightsChallenge = new UnitSkillDetail();

        knightsChallenge.name = "Knight's Challenge";
        knightsChallenge.effects.attackBoost = true;
        knightsChallenge.attackPattern       = "SupportTile";
        knightsChallenge.range = 4;

        UnitSkillDetail shieldBash = new UnitSkillDetail();

        shieldBash.name           = "Shield Bash";
        shieldBash.physicalDamage = true;
        shieldBash.effects.stun   = true;
        shieldBash.range          = 1;

        UnitSkillDetail guard = new UnitSkillDetail();

        guard.name = "Guard";
        guard.effects.damageReduction = true;
        guard.range = 0;

        UnitSkillDetail blackSwordStrike = new UnitSkillDetail();

        blackSwordStrike.physicalDamage = true;
        blackSwordStrike.range          = 1;
        blackSwordStrike.extraDamageMod = 1.2f;
        blackSwordStrike.name           = "Black Sword Strike";


        UnitSkillDetail spikedArmor = new UnitSkillDetail();

        spikedArmor.name            = "Spiked Armor";
        spikedArmor.effects.counter = true;
        spikedArmor.physicalDamage  = true;//Use Def instead of Str for counter


        UnitSkillDetail pommelStrike = new UnitSkillDetail();

        pommelStrike.name            = "Pommel Strike";
        pommelStrike.range           = 1;
        pommelStrike.effects.confuse = true;
        pommelStrike.physicalDamage  = true;

        UnitSkillDetail heavy = new UnitSkillDetail();

        heavy.name    = "Heavy";
        heavy.support = true;
        heavy.effects.defenseBoost = true;//+def, -move

        if (sk == knightsChallenge.name)
        {
            u.skill1 = knightsChallenge;
        }
        else if (sk == shieldBash.name)
        {
            u.skill2 = shieldBash;
        }
        else if (sk == guard.name)
        {
            u.skill3 = guard;
        }
        else if (sk == blackSwordStrike.name)
        {
            u.skill4 = blackSwordStrike;
        }
        else if (sk == spikedArmor.name)
        {
            u.skill5 = spikedArmor;
        }
        else if (sk == pommelStrike.name)
        {
            u.skill6 = pommelStrike;
        }
        else if (sk == heavy.name)
        {
            u.skill7 = heavy;
        }
        else if (sk == "SwordMaster1")
        {
            un.unitInfo.weaponRanks.HeavyBlade.canUse = true;
            un.unitInfo.weaponRanks.HeavyBlade.rank   = 3;
        }
        else if (sk == "AxeMaster1")
        {
            un.unitInfo.weaponRanks.Axe.canUse = true;
            un.unitInfo.weaponRanks.Axe.rank   = 3;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail kidneyShot = new UnitSkillDetail();

        kidneyShot.name           = "Kidney Shot";
        kidneyShot.effects.stun   = true;
        kidneyShot.physicalDamage = true;
        kidneyShot.range          = 4;

        UnitSkillDetail assassination = new UnitSkillDetail();

        assassination.name         = "Assassination";
        assassination.effects.kill = true;
        assassination.range        = 1;

        UnitSkillDetail twinFangs = new UnitSkillDetail();

        twinFangs.name             = "Twin Fangs";
        twinFangs.effects.extraHit = true;
        twinFangs.range            = 1;

        UnitSkillDetail envenom = new UnitSkillDetail();

        envenom.physicalDamage = true;
        envenom.range          = 1;
        envenom.effects.poison = true;
        envenom.name           = "Envenom";


        UnitSkillDetail rupture = new UnitSkillDetail();

        rupture.name           = "Rupture";
        rupture.extraDamageMod = 1.2f; //if target is suffering a debuff, deal extra damage
        rupture.physicalDamage = true; //Use Def instead of Str for counter


        UnitSkillDetail blackjack = new UnitSkillDetail();

        blackjack.name            = "Blackjack";
        blackjack.range           = 1;
        blackjack.effects.confuse = true;
        blackjack.physicalDamage  = true;

        UnitSkillDetail bloodyJake = new UnitSkillDetail();

        bloodyJake.name    = "Bloody Jake";
        bloodyJake.support = true;
        bloodyJake.effects.increaseDebuffs = true;//increase debuff duration

        if (sk == kidneyShot.name)
        {
            u.skill1 = kidneyShot;
        }
        else if (sk == assassination.name)
        {
            u.skill2 = assassination;
        }
        else if (sk == twinFangs.name)
        {
            u.skill3 = twinFangs;
        }
        else if (sk == envenom.name)
        {
            u.skill4 = envenom;
        }
        else if (sk == rupture.name)
        {
            u.skill5 = rupture;
        }
        else if (sk == blackjack.name)
        {
            u.skill6 = blackjack;
        }
        else if (sk == bloodyJake.name)
        {
            u.skill7 = bloodyJake;
        }
        else if (sk == "CloseMaster1")
        {
            un.unitInfo.weaponRanks.Close.canUse = true;
            un.unitInfo.weaponRanks.Close.rank   = 3;
        }
        else if (sk == "LightBladesMaster1")
        {
            un.unitInfo.weaponRanks.LightBlades.canUse = true;
            un.unitInfo.weaponRanks.LightBlades.rank   = 3;
        }
    }
예제 #13
0
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail barrier = new UnitSkillDetail();

        barrier.name = "Barrier";
        barrier.effects.nullDamage = true;
        barrier.range = 0;


        UnitSkillDetail arcaneBolt = new UnitSkillDetail();

        arcaneBolt.name        = "Arcane Bolt";
        arcaneBolt.magicDamage = true;
        arcaneBolt.range       = 5;


        UnitSkillDetail auraBurst = new UnitSkillDetail();

        auraBurst.name          = "Aura Burst";
        auraBurst.magicDamage   = true;
        auraBurst.attackPattern = "cross";
        auraBurst.range         = 0;


        UnitSkillDetail meditation = new UnitSkillDetail();

        meditation.range           = 0;
        meditation.effects.healing = true;//1/5 magic stat
        meditation.name            = "Meditation";


        UnitSkillDetail chant = new UnitSkillDetail();

        chant.name  = "Chant";
        chant.range = 0;
        chant.effects.attackBoost = true;


        UnitSkillDetail powerThroughPain = new UnitSkillDetail();

        powerThroughPain.name            = "Power Through Pain";
        powerThroughPain.range           = 0;
        powerThroughPain.support         = true;
        powerThroughPain.attackPattern   = "self";
        powerThroughPain.effects.counter = true;


        UnitSkillDetail arcaneMastery = new UnitSkillDetail();

        arcaneMastery.name           = "Arcane Mastery";
        arcaneMastery.support        = true;
        arcaneMastery.range          = 0;
        arcaneMastery.extraDamageMod = 1.2f;


        if (sk == barrier.name)
        {
            u.skill1 = barrier;
        }
        else if (sk == arcaneBolt.name)
        {
            u.skill2 = arcaneBolt;
        }
        else if (sk == auraBurst.name)
        {
            u.skill3 = auraBurst;
        }
        else if (sk == meditation.name)
        {
            u.skill4 = meditation;
        }
        else if (sk == chant.name)
        {
            u.skill5 = chant;
        }
        else if (sk == powerThroughPain.name)
        {
            u.skill6 = powerThroughPain;
        }
        else if (sk == arcaneMastery.name)
        {
            u.skill7 = arcaneMastery;
        }
    }
예제 #14
0
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail mug = new UnitSkillDetail();

        mug.name               = "Mug";
        mug.physicalDamage     = true;
        mug.range              = 1;
        mug.effects.stealMoney = true;
        mug.baseEffect         = 100;

        UnitSkillDetail knifeThrow = new UnitSkillDetail();

        knifeThrow.name           = "Knife Throw";
        knifeThrow.physicalDamage = true;
        knifeThrow.range          = 3;


        UnitSkillDetail disarm = new UnitSkillDetail();

        disarm.name                 = "Disarm";
        disarm.range                = 1;
        disarm.physicalDamage       = true;
        disarm.effects.reduceAttack = true;

        UnitSkillDetail hamstring = new UnitSkillDetail();

        hamstring.physicalDamage       = true;
        hamstring.range                = 1;
        hamstring.name                 = "Hamstring";
        hamstring.effects.movementDown = true;

        UnitSkillDetail gouge = new UnitSkillDetail();

        gouge.name                  = "Gouge";
        gouge.range                 = 1;
        gouge.physicalDamage        = true;
        gouge.effects.hitrateReduce = true;


        UnitSkillDetail vanish = new UnitSkillDetail();

        vanish.name              = "Vanish";
        vanish.attackPattern     = "Self";
        vanish.range             = 1;
        vanish.effects.invisible = true;

        UnitSkillDetail sanguinarian = new UnitSkillDetail();

        sanguinarian.name            = "Sanguinarian";
        sanguinarian.range           = 1;
        sanguinarian.effects.poison  = true;
        sanguinarian.effects.counter = true;

        if (sk == mug.name)
        {
            u.skill1 = mug;
        }
        else if (sk == knifeThrow.name)
        {
            u.skill2 = knifeThrow;
        }
        else if (sk == disarm.name)
        {
            u.skill3 = disarm;
        }
        else if (sk == hamstring.name)
        {
            u.skill4 = hamstring;
        }
        else if (sk == gouge.name)
        {
            u.skill5 = gouge;
        }
        else if (sk == vanish.name)
        {
            u.skill6 = vanish;
        }
        else if (sk == sanguinarian.name)
        {
            u.skill7 = sanguinarian;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail vampirism = new UnitSkillDetail();

        vampirism.name               = "Vampirism";
        vampirism.range              = 1;
        vampirism.magicDamage        = true;
        vampirism.effects.darkDamage = true;
        vampirism.restore            = 1 / 4;//heal 1/4 damage dealt


        UnitSkillDetail shadowStrike = new UnitSkillDetail();

        shadowStrike.name               = "Shadow Strike";
        shadowStrike.magicDamage        = true;
        shadowStrike.effects.darkDamage = true;
        shadowStrike.effects.extraHit   = true;
        shadowStrike.range              = 1;


        UnitSkillDetail bleedingEdge = new UnitSkillDetail();

        bleedingEdge.name                = "Bleeding Edge";
        bleedingEdge.effects.poison      = true;
        bleedingEdge.range               = 1;
        bleedingEdge.magicDamage         = true;
        bleedingEdge.effects.metalDamage = true;


        UnitSkillDetail tension = new UnitSkillDetail();

        tension.range = 0;
        tension.effects.speedBoost  = true;
        tension.effects.selfDamage  = true;
        tension.effects.attackBoost = true;
        tension.name = "Tension";


        UnitSkillDetail shred = new UnitSkillDetail();

        shred.name                  = "Shred";
        shred.range                 = 1;
        shred.physicalDamage        = true;
        shred.effects.reduceDefense = true;


        UnitSkillDetail bloodFrenzy = new UnitSkillDetail();

        bloodFrenzy.name                 = "Blood Frenzy";
        bloodFrenzy.range                = 0;
        bloodFrenzy.effects.counter      = true;
        bloodFrenzy.effects.attackBoost  = true;
        bloodFrenzy.effects.hitReduction = true;


        UnitSkillDetail feedOnDeath = new UnitSkillDetail();

        feedOnDeath.name    = "Feed on Death";
        feedOnDeath.range   = 0;
        feedOnDeath.support = true;
        feedOnDeath.restore = 1 / 4;//heal 1/4 damage you deal


        if (sk == vampirism.name)
        {
            u.skill1 = vampirism;
        }
        else if (sk == shadowStrike.name)
        {
            u.skill2 = shadowStrike;
        }
        else if (sk == bleedingEdge.name)
        {
            u.skill3 = bleedingEdge;
        }
        else if (sk == tension.name)
        {
            u.skill4 = tension;
        }
        else if (sk == shred.name)
        {
            u.skill5 = shred;
        }
        else if (sk == bloodFrenzy.name)
        {
            u.skill6 = bloodFrenzy;
        }
        else if (sk == feedOnDeath.name)
        {
            u.skill7 = feedOnDeath;
        }

        else if (sk == "CloseMaster1")
        {
            un.unitInfo.weaponRanks.Close.canUse = true;
            un.unitInfo.weaponRanks.Close.rank   = 3;
        }
        else if (sk == "AthameMaster1")
        {
            un.unitInfo.weaponRanks.Athames.canUse = true;
            un.unitInfo.weaponRanks.Athames.rank   = 3;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail trample = new UnitSkillDetail();

        trample.name            = "Trample";
        trample.effects.overRun = true;
        trample.physicalDamage  = true;
        trample.attackPattern   = "Self";

        UnitSkillDetail joust = new UnitSkillDetail();

        joust.name                 = "Joust";
        joust.physicalDamage       = true;
        joust.range                = 1;
        joust.effects.movementDown = true;

        UnitSkillDetail lance = new UnitSkillDetail();

        lance.name             = "Lance";
        lance.physicalDamage   = true;
        lance.effects.extraHit = true;
        lance.range            = 1;
        lance.attackPattern    = "2TileLine";
        lance.physicalDamage   = true;

        UnitSkillDetail flanking = new UnitSkillDetail();

        flanking.physicalDamage = true;
        flanking.range          = 1;
        flanking.name           = "Flanking";
        flanking.attackPattern  = "cross";

        UnitSkillDetail vault = new UnitSkillDetail();

        vault.name          = "Vault";
        vault.attackPattern = "Self";

        UnitSkillDetail hospitalier = new UnitSkillDetail();

        hospitalier.name          = "Hospitalier";
        hospitalier.range         = 1;
        hospitalier.attackPattern = "Self";

        UnitSkillDetail warTrainedMount = new UnitSkillDetail();

        warTrainedMount.name            = "War Trained Mount";
        warTrainedMount.support         = true;
        warTrainedMount.effects.counter = true;

        if (sk == trample.name)
        {
            u.skill1 = trample;
        }
        else if (sk == joust.name)
        {
            u.skill2 = joust;
        }
        else if (sk == lance.name)
        {
            u.skill3 = lance;
        }
        else if (sk == flanking.name)
        {
            u.skill4 = flanking;
        }
        else if (sk == vault.name)
        {
            u.skill5 = vault;
        }
        else if (sk == hospitalier.name)
        {
            u.skill6 = hospitalier;
        }
        else if (sk == warTrainedMount.name)
        {
            u.skill7 = warTrainedMount;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail avast = new UnitSkillDetail();

        avast.name                = "Avast!";
        avast.extraDamageMod      = 0;//+1/2 dmg vs target
        avast.range               = 3;
        avast.effects.attackBoost = true;


        UnitSkillDetail ropeADope = new UnitSkillDetail();

        ropeADope.name                 = "Rope-A-Dope";
        ropeADope.physicalDamage       = true;
        ropeADope.effects.swapPosition = true;
        ropeADope.range                = 2;


        UnitSkillDetail pommelBash = new UnitSkillDetail();

        pommelBash.name            = "Pommel Bash";
        pommelBash.physicalDamage  = true;
        pommelBash.effects.confuse = true;
        pommelBash.range           = 1;


        UnitSkillDetail toTheHilt = new UnitSkillDetail();

        toTheHilt.range          = 1;
        toTheHilt.effects.root   = true;//entangle enemy
        toTheHilt.physicalDamage = true;
        toTheHilt.name           = "To The Hilt";


        UnitSkillDetail scatterShot = new UnitSkillDetail();

        scatterShot.name                 = "Scattershot";
        scatterShot.range                = 3;
        scatterShot.attackPattern        = "3x3cone";
        scatterShot.effects.randomDamage = true;//deals random damage (weapon + atk * 2 max)
        scatterShot.physicalDamage       = true;


        UnitSkillDetail parry = new UnitSkillDetail();

        parry.name            = "Parry";
        parry.range           = 0;
        parry.support         = true;
        parry.attackPattern   = "self";
        parry.effects.dodge   = true;
        parry.effects.counter = true;


        UnitSkillDetail shotOffTheBow = new UnitSkillDetail();

        shotOffTheBow.name           = "Shot off the Bow";
        shotOffTheBow.range          = 5;
        shotOffTheBow.effects.shaken = true;
        shotOffTheBow.attackPattern  = "4tileLine";
        shotOffTheBow.physicalDamage = true;


        if (sk == avast.name)
        {
            u.skill1 = avast;
        }
        else if (sk == ropeADope.name)
        {
            u.skill2 = ropeADope;
        }
        else if (sk == pommelBash.name)
        {
            u.skill3 = pommelBash;
        }
        else if (sk == toTheHilt.name)
        {
            u.skill4 = toTheHilt;
        }
        else if (sk == scatterShot.name)
        {
            u.skill5 = scatterShot;
        }
        else if (sk == parry.name)
        {
            u.skill6 = parry;
        }
        else if (sk == shotOffTheBow.name)
        {
            u.skill7 = shotOffTheBow;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail focused = new UnitSkillDetail();

        focused.name = "Focused";
        focused.effects.attackBoost = true;
        focused.support             = true;
        focused.mod           = 0.25f;
        focused.attackPattern = "SupportTile";
        focused.range         = 0;

        UnitSkillDetail wildStrike = new UnitSkillDetail();

        wildStrike.name           = "Wild Strike";
        wildStrike.physicalDamage = true;
        wildStrike.attackPattern  = "BackAndFront";

        UnitSkillDetail bullrush = new UnitSkillDetail();

        bullrush.name                    = "Bull Rush";
        bullrush.physicalDamage          = true;
        bullrush.effects.damageReduction = true;
        bullrush.effects.knockBack       = true;
        bullrush.range                   = 1;

        UnitSkillDetail doubleEdged = new UnitSkillDetail();

        doubleEdged.physicalDamage     = true;
        doubleEdged.range              = 1;
        doubleEdged.extraDamageMod     = 1.2f;
        doubleEdged.name               = "Double Edged";
        doubleEdged.effects.selfDamage = true;

        UnitSkillDetail blitz = new UnitSkillDetail();

        blitz.name                  = "Blitz";
        blitz.range                 = 1;
        blitz.physicalDamage        = true;
        blitz.effects.extraHit      = true;
        blitz.effects.hitrateReduce = true;


        UnitSkillDetail lunge = new UnitSkillDetail();

        lunge.name           = "Lunge";
        lunge.range          = 1;
        lunge.attackPattern  = "LineVert";
        lunge.physicalDamage = true;

        UnitSkillDetail counter = new UnitSkillDetail();

        counter.name            = "Counter";
        counter.support         = true;
        counter.effects.counter = true;

        if (sk == focused.name)
        {
            u.skill1 = focused;
        }
        else if (sk == wildStrike.name)
        {
            u.skill2 = wildStrike;
        }
        else if (sk == bullrush.name)
        {
            u.skill3 = bullrush;
        }
        else if (sk == doubleEdged.name)
        {
            u.skill4 = doubleEdged;
        }
        else if (sk == blitz.name)
        {
            u.skill5 = blitz;
        }
        else if (sk == lunge.name)
        {
            u.skill6 = lunge;
        }
        else if (sk == counter.name)
        {
            u.skill7 = counter;
        }
        else if (sk == "SwordMaster1")
        {
            un.unitInfo.weaponRanks.HeavyBlade.canUse = true;
            un.unitInfo.weaponRanks.HeavyBlade.rank   = 3;
        }
    }
예제 #19
0
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail eyeline = new UnitSkillDetail();

        eyeline.name = "Eyeline";
        eyeline.effects.hitrateReduce = true;
        eyeline.range = 5;

        UnitSkillDetail enfiliade = new UnitSkillDetail();

        enfiliade.name           = "Enfilade";
        enfiliade.physicalDamage = true;
        enfiliade.attackPattern  = "3x3cone";

        UnitSkillDetail hailOfArrows = new UnitSkillDetail();

        hailOfArrows.name           = "Hail of Arrows";
        hailOfArrows.physicalDamage = true;
        hailOfArrows.range          = 4;
        hailOfArrows.attackPattern  = "cross";

        UnitSkillDetail fullDraw = new UnitSkillDetail();

        fullDraw.physicalDamage       = true;
        fullDraw.range                = 7;
        fullDraw.effects.hitReduction = true;
        fullDraw.name = "Full Draw";


        UnitSkillDetail counterfire = new UnitSkillDetail();

        counterfire.name            = "Counterfire";
        counterfire.effects.counter = true;//return fire when recieving ranged attack
        counterfire.support         = true;
        counterfire.physicalDamage  = true;


        UnitSkillDetail overDraw = new UnitSkillDetail();

        overDraw.name           = "Over Draw";
        overDraw.range          = 5;
        overDraw.extraDamageMod = 1.2f;
        overDraw.physicalDamage = true;

        UnitSkillDetail eagleEye = new UnitSkillDetail();

        eagleEye.name    = "Eagle Eye";
        eagleEye.support = true;
        eagleEye.effects.increaseAccuracy = true;//+def, -move

        if (sk == eyeline.name)
        {
            u.skill1 = eyeline;
        }
        else if (sk == enfiliade.name)
        {
            u.skill2 = enfiliade;
        }
        else if (sk == hailOfArrows.name)
        {
            u.skill3 = hailOfArrows;
        }
        else if (sk == fullDraw.name)
        {
            u.skill4 = fullDraw;
        }
        else if (sk == counterfire.name)
        {
            u.skill5 = counterfire;
        }
        else if (sk == overDraw.name)
        {
            u.skill6 = overDraw;
        }
        else if (sk == eagleEye.name)
        {
            u.skill7 = eagleEye;
        }
        else if (sk == "RangedMaster1")
        {
            un.unitInfo.weaponRanks.Ranged.canUse = true;
            un.unitInfo.weaponRanks.Ranged.rank   = 3;
            un.unitInfo.weaponRanks.Close.canUse  = true;
            un.unitInfo.weaponRanks.Close.rank    = 3;
        }
        else if (sk == "CloseMaster1")
        {
            un.unitInfo.weaponRanks.Close.canUse = true;
            un.unitInfo.weaponRanks.Close.rank   = 3;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail healingLight = new UnitSkillDetail();

        healingLight.name            = "Healing Light";
        healingLight.restore         = 1;//magic / 2
        healingLight.range           = 4;
        healingLight.effects.healing = true;


        UnitSkillDetail smite = new UnitSkillDetail();

        smite.name               = "Smite";
        smite.magicDamage        = true;
        smite.effects.holyDamage = true;
        smite.range              = 4;


        UnitSkillDetail purify = new UnitSkillDetail();

        purify.name = "Purify";
        purify.effects.statusHeal = true;
        purify.range = 4;


        UnitSkillDetail breathOfLife = new UnitSkillDetail();

        breathOfLife.range          = 4;
        breathOfLife.effects.revive = true; //1/5 magic stat
        breathOfLife.restore        = 0;    //50% life
        breathOfLife.name           = "Breath of Life";


        UnitSkillDetail divineProtection = new UnitSkillDetail();

        divineProtection.name  = "Divine Protection";
        divineProtection.range = 4;
        divineProtection.effects.defenseBoost      = true;
        divineProtection.effects.magicDefenseBoost = true;


        UnitSkillDetail pray = new UnitSkillDetail();

        pray.name                = "Pray";
        pray.range               = 0;
        pray.attackPattern       = "self";
        pray.effects.attackBoost = true;


        UnitSkillDetail divineMastery = new UnitSkillDetail();

        divineMastery.name           = "Divine Mastery";
        divineMastery.support        = true;
        divineMastery.extraDamageMod = 1.2f;


        if (sk == healingLight.name)
        {
            u.skill1 = healingLight;
        }
        else if (sk == smite.name)
        {
            u.skill2 = smite;
        }
        else if (sk == purify.name)
        {
            u.skill3 = purify;
        }
        else if (sk == breathOfLife.name)
        {
            u.skill4 = breathOfLife;
        }
        else if (sk == divineProtection.name)
        {
            u.skill5 = divineProtection;
        }
        else if (sk == pray.name)
        {
            u.skill6 = pray;
        }
        else if (sk == divineMastery.name)
        {
            u.skill7 = divineMastery;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail lightItUp = new UnitSkillDetail();

        lightItUp.name               = "Light it Up!";
        lightItUp.range              = 1;
        lightItUp.magicDamage        = true;
        lightItUp.effects.fireDamage = true;//deal fire damage to foe


        UnitSkillDetail kaboom = new UnitSkillDetail();

        kaboom.name               = "Kaboom";
        kaboom.magicDamage        = true;
        kaboom.effects.fireDamage = true;
        kaboom.effects.knockBack  = true;
        kaboom.range              = 4;
        kaboom.attackPattern      = "cross";


        UnitSkillDetail chainshot = new UnitSkillDetail();

        chainshot.name = "Chainshot";
        chainshot.effects.movementDown = true;
        chainshot.range          = 5;
        chainshot.physicalDamage = true;


        UnitSkillDetail breachBlast = new UnitSkillDetail();

        breachBlast.range              = 2;
        breachBlast.attackPattern      = "cross";
        breachBlast.physicalDamage     = true;//deal half physical, half fire damage to surrounding foes and self
        breachBlast.effects.fireDamage = true;
        breachBlast.effects.selfDamage = true;
        breachBlast.name = "Breach Blast";


        UnitSkillDetail blowTheGates = new UnitSkillDetail();

        blowTheGates.name                = "Blow the Gates";
        blowTheGates.range               = 4;
        blowTheGates.attackPattern       = "4tileLine";
        blowTheGates.magicDamage         = true;
        blowTheGates.effects.metalDamage = true;


        UnitSkillDetail cannonSwing = new UnitSkillDetail();

        cannonSwing.name  = "Cannon Swing";
        cannonSwing.range = 1;
        cannonSwing.effects.metalDamage = true;
        cannonSwing.magicDamage         = true;
        cannonSwing.effects.counter     = true;
        cannonSwing.effects.knockBack   = true;


        UnitSkillDetail flechette = new UnitSkillDetail();

        flechette.name                  = "Flechette";
        flechette.range                 = 3;
        flechette.attackPattern         = "3x3cone";
        flechette.effects.reduceDefense = true;//reduce enemy defense


        if (sk == lightItUp.name)
        {
            u.skill1 = lightItUp;
        }
        else if (sk == kaboom.name)
        {
            u.skill2 = kaboom;
        }
        else if (sk == chainshot.name)
        {
            u.skill3 = chainshot;
        }
        else if (sk == breachBlast.name)
        {
            u.skill4 = breachBlast;
        }
        else if (sk == blowTheGates.name)
        {
            u.skill5 = blowTheGates;
        }
        else if (sk == cannonSwing.name)
        {
            u.skill6 = cannonSwing;
        }
        else if (sk == flechette.name)
        {
            u.skill7 = flechette;
        }

        else if (sk == "CloseMaster1")
        {
            un.unitInfo.weaponRanks.Close.canUse = true;
            un.unitInfo.weaponRanks.Close.rank   = 3;
        }
        else if (sk == "RangedMaster1")
        {
            un.unitInfo.weaponRanks.LightBlades.canUse = true;
            un.unitInfo.weaponRanks.LightBlades.rank   = 3;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail volley = new UnitSkillDetail();

        volley.name           = "Volley";
        volley.attackPattern  = "cross";
        volley.physicalDamage = true;
        volley.range          = 5;

        UnitSkillDetail longShot = new UnitSkillDetail();

        longShot.name                  = "Long Shot";
        longShot.physicalDamage        = true;
        longShot.range                 = 8;
        longShot.effects.hitrateReduce = true;

        UnitSkillDetail doubleNock = new UnitSkillDetail();

        doubleNock.name                    = "Double-Nock";
        doubleNock.physicalDamage          = true;
        doubleNock.effects.damageReduction = true;
        doubleNock.effects.extraHit        = true;
        doubleNock.range                   = 5;

        UnitSkillDetail pierce = new UnitSkillDetail();

        pierce.physicalDamage = true;
        pierce.range          = 5;
        pierce.extraDamageMod = 1.2f;
        pierce.name           = "Pierce";

        UnitSkillDetail armShot = new UnitSkillDetail();

        armShot.name                  = "Arm Shot";
        armShot.range                 = 5;
        armShot.physicalDamage        = true;
        armShot.effects.hitrateReduce = true;


        UnitSkillDetail legShot = new UnitSkillDetail();

        legShot.name  = "Leg Shot";
        legShot.range = 4;
        legShot.effects.movementDown = true;
        legShot.physicalDamage       = true;

        UnitSkillDetail stabbingArrow = new UnitSkillDetail();

        stabbingArrow.name            = "Stabbing Arrow";
        stabbingArrow.support         = true;
        stabbingArrow.effects.counter = true;

        if (sk == volley.name)
        {
            u.skill1 = volley;
        }
        else if (sk == longShot.name)
        {
            u.skill2 = longShot;
        }
        else if (sk == doubleNock.name)
        {
            u.skill3 = doubleNock;
        }
        else if (sk == pierce.name)
        {
            u.skill4 = pierce;
        }
        else if (sk == armShot.name)
        {
            u.skill5 = armShot;
        }
        else if (sk == legShot.name)
        {
            u.skill6 = legShot;
        }
        else if (sk == stabbingArrow.name)
        {
            u.skill7 = stabbingArrow;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail spearThrust = new UnitSkillDetail();

        spearThrust.name           = "Spear Thrust";
        spearThrust.attackPattern  = "2tileLine";
        spearThrust.physicalDamage = true;
        spearThrust.range          = 2;

        UnitSkillDetail hammerAndNail = new UnitSkillDetail();

        hammerAndNail.name           = "Hammer and Nail";
        hammerAndNail.physicalDamage = true;
        hammerAndNail.range          = 1;
        hammerAndNail.attackPattern  = "cross";

        UnitSkillDetail pierceDefenses = new UnitSkillDetail();

        pierceDefenses.name = "Pierce Defenses";
        pierceDefenses.effects.reduceDefense = true;
        pierceDefenses.physicalDamage        = true;
        pierceDefenses.range = 1;

        UnitSkillDetail hurl = new UnitSkillDetail();

        hurl.physicalDamage = true;
        hurl.range          = 4;
        hurl.attackPattern  = "4tileLine";
        hurl.name           = "Hurl";


        UnitSkillDetail helmCleaver = new UnitSkillDetail();

        helmCleaver.name            = "Helm Cleaver";
        helmCleaver.extraDamageMod  = 1.2f;
        helmCleaver.physicalDamage  = true;
        helmCleaver.effects.confuse = true;


        UnitSkillDetail charge = new UnitSkillDetail();

        charge.name              = "Charge!";
        charge.range             = 5;//rush an enemy and blow them back
        charge.effects.knockBack = true;
        charge.physicalDamage    = true;

        UnitSkillDetail ringTheBell = new UnitSkillDetail();

        ringTheBell.name                 = "Ring the Bell";
        ringTheBell.effects.counter      = true;
        ringTheBell.effects.movementDown = true;//increase debuff duration

        if (sk == spearThrust.name)
        {
            u.skill1 = spearThrust;
        }
        else if (sk == hammerAndNail.name)
        {
            u.skill2 = hammerAndNail;
        }
        else if (sk == pierceDefenses.name)
        {
            u.skill3 = pierceDefenses;
        }
        else if (sk == hurl.name)
        {
            u.skill4 = hurl;
        }
        else if (sk == helmCleaver.name)
        {
            u.skill5 = helmCleaver;
        }
        else if (sk == charge.name)
        {
            u.skill6 = charge;
        }
        else if (sk == ringTheBell.name)
        {
            u.skill7 = ringTheBell;
        }
        else if (sk == "HeavyBladesMaster1")
        {
            un.unitInfo.weaponRanks.HeavyBlade.canUse = true;
            un.unitInfo.weaponRanks.HeavyBlade.rank   = 3;
        }
        else if (sk == "SpearMaster1")
        {
            un.unitInfo.weaponRanks.Spear.canUse = true;
            un.unitInfo.weaponRanks.Spear.rank   = 3;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u)
    {
        UnitSkillDetail shadowstick = new UnitSkillDetail();

        shadowstick.name               = "Shadowstick";
        shadowstick.magicDamage        = true;//magic / 2
        shadowstick.effects.darkDamage = true;
        shadowstick.range              = 3;
        shadowstick.effects.root       = true;


        UnitSkillDetail lightFades = new UnitSkillDetail();

        lightFades.name = "Light Fades";
        lightFades.effects.invisible     = true;;
        lightFades.effects.hitrateReduce = true;
        lightFades.range         = 0;
        lightFades.attackPattern = "Self";


        UnitSkillDetail dirtyTrick = new UnitSkillDetail();

        dirtyTrick.name = "Dirty Trick";
        dirtyTrick.effects.randomDebuff = true;
        dirtyTrick.range = 1;


        UnitSkillDetail shades = new UnitSkillDetail();

        shades.range   = 0;
        shades.support = true;
        shades.effects.hitrateReduce = true;
        shades.effects.counter       = true;
        shades.name = "Shades";


        UnitSkillDetail smokeBomb = new UnitSkillDetail();

        smokeBomb.name  = "Smoke Bomb";
        smokeBomb.range = 3;
        smokeBomb.effects.hitrateReduce = true;
        smokeBomb.effects.poison        = true;
        smokeBomb.attackPattern         = "cross";


        UnitSkillDetail darkIntentions = new UnitSkillDetail();

        darkIntentions.name = "Dark Intentions";
        darkIntentions.effects.increaseDebuffs = true;
        darkIntentions.range   = 0;
        darkIntentions.support = true;


        UnitSkillDetail knifeTheSoul = new UnitSkillDetail();

        knifeTheSoul.name  = "Knife the Soul";
        knifeTheSoul.range = 0;
        knifeTheSoul.effects.trueDamage   = true;//deals weapon half weapon might to enemy ignoring defense if it hits
        knifeTheSoul.effects.hitReduction = true;

        if (sk == shadowstick.name)
        {
            u.skill1 = shadowstick;
        }
        else if (sk == lightFades.name)
        {
            u.skill2 = lightFades;
        }
        else if (sk == dirtyTrick.name)
        {
            u.skill3 = dirtyTrick;
        }
        else if (sk == shades.name)
        {
            u.skill4 = shades;
        }
        else if (sk == smokeBomb.name)
        {
            u.skill5 = smokeBomb;
        }
        else if (sk == darkIntentions.name)
        {
            u.skill6 = darkIntentions;
        }
        else if (sk == knifeTheSoul.name)
        {
            u.skill7 = knifeTheSoul;
        }
    }
예제 #25
0
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail cover = new UnitSkillDetail();

        cover.name = "Cover";//take damage for adjacent enemy for 1 turn
        cover.effects.absorbDamage = true;
        cover.range = 1;

        UnitSkillDetail judgement = new UnitSkillDetail();

        judgement.name = "Judgement";
        judgement.effects.holyDamage = true;
        judgement.range = 4;

        UnitSkillDetail holyAura = new UnitSkillDetail();

        holyAura.name            = "Holy Aura";
        holyAura.effects.counter = true;//heal 1/4 magic stat to adjacent units
        holyAura.attackPattern   = "cross";
        holyAura.range           = 1;

        UnitSkillDetail mercy = new UnitSkillDetail();

        mercy.restore            = 1;//heal magic stat to adjacent ally
        mercy.range              = 1;
        mercy.effects.statusHeal = true;
        mercy.name = "Mercy";


        UnitSkillDetail divineStrike = new UnitSkillDetail();

        divineStrike.name               = "Divine Strike";
        divineStrike.extraDamageMod     = 1.2f; //if target is suffering a debuff, deal extra damage
        divineStrike.physicalDamage     = true; //Use Def instead of Str for counter
        divineStrike.effects.holyDamage = true;

        UnitSkillDetail mightOfHeaven = new UnitSkillDetail();

        mightOfHeaven.name  = "Might of Heaven";
        mightOfHeaven.range = 0;
        mightOfHeaven.effects.defenseBoost      = true;
        mightOfHeaven.effects.magicDefenseBoost = true;
        mightOfHeaven.effects.magicBoost        = true;

        UnitSkillDetail heavensSteps = new UnitSkillDetail();

        heavensSteps.name    = "Heavens Steps";
        heavensSteps.support = true;
        heavensSteps.effects.movementIncrease = true;//increase debuff duration

        if (sk == cover.name)
        {
            u.skill1 = cover;
        }
        else if (sk == judgement.name)
        {
            u.skill2 = judgement;
        }
        else if (sk == holyAura.name)
        {
            u.skill3 = holyAura;
        }
        else if (sk == mercy.name)
        {
            u.skill4 = mercy;
        }
        else if (sk == divineStrike.name)
        {
            u.skill5 = divineStrike;
        }
        else if (sk == mightOfHeaven.name)
        {
            u.skill6 = mightOfHeaven;
        }
        else if (sk == heavensSteps.name)
        {
            u.skill7 = heavensSteps;
        }
        else if (sk == "HeavyBladesMaster1")
        {
            un.unitInfo.weaponRanks.HeavyBlade.canUse = true;
            un.unitInfo.weaponRanks.HeavyBlade.rank   = 3;
        }
        else if (sk == "StavesMaster1")
        {
            un.unitInfo.weaponRanks.Stave.canUse = true;
            un.unitInfo.weaponRanks.Stave.rank   = 3;
        }
    }
    public static void AssignSkill(string sk, UnitClassSkill u, Unit un)
    {
        UnitSkillDetail possess = new UnitSkillDetail();

        possess.name  = "Possess";
        possess.range = 4;
        possess.effects.absorbDamage = true;//for 1 turn, target takes half the damage you do


        UnitSkillDetail invidious = new UnitSkillDetail();

        invidious.name               = "Invidious";
        invidious.magicDamage        = true;
        invidious.effects.darkDamage = true;
        invidious.effects.shaken     = true;
        invidious.range              = 1;


        UnitSkillDetail hellBlade = new UnitSkillDetail();

        hellBlade.name = "Hell Blade";
        hellBlade.effects.fireDamage = true;//deals half fire, half dark
        hellBlade.effects.darkDamage = true;
        hellBlade.effects.stun       = true;
        hellBlade.range       = 1;
        hellBlade.magicDamage = true;


        UnitSkillDetail callTheDarkSpirits = new UnitSkillDetail();

        callTheDarkSpirits.range           = 4;
        callTheDarkSpirits.physicalDamage  = true;
        callTheDarkSpirits.effects.shaken  = true;
        callTheDarkSpirits.effects.confuse = true;
        callTheDarkSpirits.name            = "Call to Dark Spirits";
        callTheDarkSpirits.attackPattern   = "cross";


        UnitSkillDetail blackSword = new UnitSkillDetail();

        blackSword.name                = "Black Sword";
        blackSword.range               = 1;
        blackSword.magicDamage         = true;
        blackSword.effects.metalDamage = true;


        UnitSkillDetail darkProtection = new UnitSkillDetail();

        darkProtection.name  = "Dark Protection";
        darkProtection.range = 0;
        darkProtection.effects.selfDamage        = true;
        darkProtection.effects.defenseBoost      = true;
        darkProtection.effects.magicDefenseBoost = true;


        UnitSkillDetail evilThoughts = new UnitSkillDetail();

        evilThoughts.name                    = "Evil Thoughts";
        evilThoughts.range                   = 0;
        evilThoughts.support                 = true;
        evilThoughts.effects.magicBoost      = true;//reduce damage using second weapons might
        evilThoughts.effects.increaseDebuffs = true;

        if (sk == possess.name)
        {
            u.skill1 = possess;
        }
        else if (sk == invidious.name)
        {
            u.skill2 = invidious;
        }
        else if (sk == hellBlade.name)
        {
            u.skill3 = hellBlade;
        }
        else if (sk == callTheDarkSpirits.name)
        {
            u.skill4 = callTheDarkSpirits;
        }
        else if (sk == blackSword.name)
        {
            u.skill5 = blackSword;
        }
        else if (sk == darkProtection.name)
        {
            u.skill6 = darkProtection;
        }
        else if (sk == evilThoughts.name)
        {
            u.skill7 = evilThoughts;
        }

        else if (sk == "HeavyBladesMaster1")
        {
            un.unitInfo.weaponRanks.HeavyBlade.canUse = true;
            un.unitInfo.weaponRanks.HeavyBlade.rank   = 3;
        }
        else if (sk == "SpearMaster1")
        {
            un.unitInfo.weaponRanks.Spear.canUse = true;
            un.unitInfo.weaponRanks.Spear.rank   = 3;
        }
    }