Example #1
0
    void doEffect(SkillEffect effect)
    {
        Debug.Log("Skill: " + effect.ToString());
        Debug.Log("Effect: " + effect.effect.ToString());
        switch (effect.effect)
        {
        case SkillEffect.Effect.Change:
            SkillEffect.ChangeSkill cskill = (SkillEffect.ChangeSkill)effect;
            BoardManager.instance.switchAllTiles(cskill.from, cskill.to);
            break;

        case SkillEffect.Effect.ChangeSome:
            SkillEffect.ChangeSomeSkill csomeskill = (SkillEffect.ChangeSomeSkill)effect;
            BoardManager.instance.switchSomeTiles(csomeskill.from, csomeskill.to, csomeskill.lower, csomeskill.upper);
            break;

        case SkillEffect.Effect.Damage:
            characterHit(effect.amount + (int)PanelManager.instance.getCurrentMonster().sloth);
            break;

        case SkillEffect.Effect.Destroy:
            SkillEffect.DestroySkill destroyskill = (SkillEffect.DestroySkill)effect;
            BoardManager.instance.destroyTiles(destroyskill.toRemove);
            break;

        case SkillEffect.Effect.DestroySome:
            SkillEffect.DestroySomeSkill destroysomeskill = (SkillEffect.DestroySomeSkill)effect;
            BoardManager.instance.destroySomeTiles(destroysomeskill.toRemove, destroysomeskill.from, destroysomeskill.to);
            break;

        case SkillEffect.Effect.Heal:
            characterHit(-(effect.amount + (int)PanelManager.instance.getCurrentMonster().sloth));
            break;

        case SkillEffect.Effect.Poke:
            SkillEffect.PokeSkill pokeskill = (SkillEffect.PokeSkill)effect;
            if (type.type == pokeskill.toRemove)
            {
                BoardManager.instance.PokeTile(this, effect.amount);
            }
            break;

        case SkillEffect.Effect.Poison:
            SkillEffect.PoisonSkill poisonskill = (SkillEffect.PoisonSkill)effect;
            BoardManager.instance.buff(poisonskill.amount);
            break;

        case SkillEffect.Effect.Reset:
            BoardManager.instance.reset(true);
            break;

        case SkillEffect.Effect.Sabotage:
            BoardManager.instance.Sabotage(effect.amount);
            break;

        case SkillEffect.Effect.Slice:
            SkillEffect.SliceSkill sliceskill = (SkillEffect.SliceSkill)effect;
            if (type.type == sliceskill.toRemove)
            {
                BoardManager.instance.SliceTile(this, effect.amount);
            }
            break;

        case SkillEffect.Effect.xTurn:
            BoardManager.instance.addExtraTurns(effect.amount);
            break;
        }
    }
Example #2
0
    public static SkillMeta[] parseSkills(string[] skills, Glossary glossary)
    {
        List <SkillMeta> retSkills = new List <SkillMeta> ();

        foreach (string skill in skills)
        {
            foreach (GameObject meta in glossary.skills)
            {
                if (meta.name.Equals(skill))
                {
                    SkillMetaSerializable foundMeta = meta.GetComponent <SkillMain> ().meta;
                    SkillMeta             thisSkill = new SkillMeta();
                    thisSkill.name     = foundMeta.name;
                    thisSkill.req1     = new SkillReq();
                    thisSkill.req1.gem = foundMeta.req1.gem;
                    thisSkill.req1.req = foundMeta.req1.req;
                    thisSkill.req1.has = 0;
                    thisSkill.req2     = new SkillReq();
                    thisSkill.req2.gem = foundMeta.req2.gem;
                    thisSkill.req2.req = foundMeta.req2.req;
                    thisSkill.req2.has = 0;
                    List <SkillEffect> effects = new List <SkillEffect> ();
                    foreach (SkillEffectSerializable effect in foundMeta.effects)
                    {
                        switch (effect.effect)
                        {
                        case SkillEffect.Effect.Change:
                            SkillEffect.ChangeSkill changeEffect = new SkillEffect.ChangeSkill();
                            changeEffect.from = effect.gem1;
                            changeEffect.to   = effect.gem2;
                            effects.Add(changeEffect);
                            break;

                        case SkillEffect.Effect.ChangeSome:
                            SkillEffect.ChangeSomeSkill changeSomeEffect = new SkillEffect.ChangeSomeSkill();
                            changeSomeEffect.from  = effect.gem1;
                            changeSomeEffect.to    = effect.gem2;
                            changeSomeEffect.lower = effect.val;
                            changeSomeEffect.upper = effect.val2;
                            effects.Add(changeSomeEffect);
                            break;

                        case SkillEffect.Effect.Damage:
                            SkillEffect.DamageSkill damageEffect = new SkillEffect.DamageSkill();
                            damageEffect.amount = effect.val;
                            effects.Add(damageEffect);
                            break;

                        case SkillEffect.Effect.Destroy:
                            SkillEffect.DestroySkill destroyEffect = new SkillEffect.DestroySkill();
                            destroyEffect.toRemove = effect.gem1;
                            effects.Add(destroyEffect);
                            break;

                        case SkillEffect.Effect.DestroySome:
                            SkillEffect.DestroySomeSkill destroySomeEffect = new SkillEffect.DestroySomeSkill();
                            destroySomeEffect.toRemove = effect.gem1;
                            destroySomeEffect.from     = effect.val;
                            destroySomeEffect.to       = effect.val2;
                            effects.Add(destroySomeEffect);
                            break;

                        case SkillEffect.Effect.Heal:
                            SkillEffect.HealSkill healEffect = new SkillEffect.HealSkill();
                            healEffect.amount = effect.val;
                            effects.Add(healEffect);
                            break;

                        case SkillEffect.Effect.Poison:
                            SkillEffect.PoisonSkill buffEffect = new SkillEffect.PoisonSkill();
                            buffEffect.amount = effect.val;
                            effects.Add(buffEffect);
                            break;

                        case SkillEffect.Effect.Poke:
                            SkillEffect.PokeSkill pokeEffect = new SkillEffect.PokeSkill();
                            pokeEffect.toRemove = effect.gem1;
                            pokeEffect.amount   = effect.val;
                            effects.Add(pokeEffect);
                            break;

                        case SkillEffect.Effect.Reset:
                            SkillEffect.ResetSkill resetEffect = new SkillEffect.ResetSkill();
                            effects.Add(resetEffect);
                            break;

                        case SkillEffect.Effect.Sabotage:
                            SkillEffect.SabotageSkill sabotageEffect = new SkillEffect.SabotageSkill();
                            sabotageEffect.amount = effect.val;
                            effects.Add(sabotageEffect);
                            break;

                        case SkillEffect.Effect.Slice:
                            SkillEffect.SliceSkill sliceEffect = new SkillEffect.SliceSkill();
                            sliceEffect.amount   = effect.val;
                            sliceEffect.toRemove = effect.gem1;
                            effects.Add(sliceEffect);
                            break;

                        case SkillEffect.Effect.xTurn:
                            SkillEffect.xTurnSkill xTurnEffect = new SkillEffect.xTurnSkill();
                            xTurnEffect.amount = effect.val;
                            effects.Add(xTurnEffect);
                            break;
                        }
                    }
                    thisSkill.effects = effects.ToArray();
                    retSkills.Add(thisSkill);
                }
            }
        }
        return(retSkills.ToArray());
    }