Beispiel #1
0
    public void attackEffect(GameAttackAddType addType, int turn)
    {
        switch (addType)
        {
        case GameAttackAddType.None:
        case GameAttackAddType.AbsorbHP:
            break;

        case GameAttackAddType.Poison:
        {
            GameBattleUnitEffect e = new GameBattleUnitEffect();
            e.Effect = GameSkillResutlEffect.Poison;
            e.Turn   = turn;

            addEffect(e);
        }
        break;

        case GameAttackAddType.Palsy:
        {
            GameBattleUnitEffect e = new GameBattleUnitEffect();
            e.Effect = GameSkillResutlEffect.Palsy;
            e.Turn   = turn;

            addEffect(e);
        }
        break;

        case GameAttackAddType.Silence:
        {
            GameBattleUnitEffect e = new GameBattleUnitEffect();
            e.Effect = GameSkillResutlEffect.Silence;
            e.Turn   = turn;

            addEffect(e);
        }
        break;

        case GameAttackAddType.Fetter:
        {
            GameBattleUnitEffect e = new GameBattleUnitEffect();
            e.Effect = GameSkillResutlEffect.Fetter;
            e.Turn   = turn;

            addEffect(e);
        }
        break;

        case GameAttackAddType.Clear:
        {
            for (int i = 0; i < effects.Count;)
            {
                if (effects[i].Effect == GameSkillResutlEffect.StrUp ||
                    effects[i].Effect == GameSkillResutlEffect.VitUp ||
                    effects[i].Effect == GameSkillResutlEffect.IntUp ||
                    effects[i].Effect == GameSkillResutlEffect.MoveUp ||
                    effects[i].Effect == GameSkillResutlEffect.Violent)
                {
                    destroyEffect(i);
                }
                else
                {
                    i++;
                }
            }
        }
        break;
        }
    }
Beispiel #2
0
    public void skillEffect(GameBattleUnit unit, GameSkill sk)
    {
        int hitAdd = sk.HitAdd <= 0 ? 100 : sk.HitAdd;

        if (Random.Range(0, 100) > hitAdd)
        {
            return;
        }

        switch (sk.ResultType)
        {
        case GameSkillResutlType.Purge:
        {
            for (int i = 0; i < effects.Count;)
            {
                if (effects[i].Effect == GameSkillResutlEffect.Poison ||
                    effects[i].Effect == GameSkillResutlEffect.Palsy ||
                    effects[i].Effect == GameSkillResutlEffect.Silence ||
                    effects[i].Effect == GameSkillResutlEffect.Fetter)
                {
                    destroyEffect(i);
                }
                else
                {
                    i++;
                }
            }
        }
        break;

        case GameSkillResutlType.Blessing:
        {
            GameBattleUnitEffect e = new GameBattleUnitEffect();
            e.Effect = sk.ResultEffect;
            e.Turn   = 3;

            switch (e.Effect)
            {
            case GameSkillResutlEffect.StrUp:
                e.Str = 140;
                break;

            case GameSkillResutlEffect.VitUp:
                e.Vit = 200;
                break;

            case GameSkillResutlEffect.IntUp:
                e.Int = 140;
                break;

            case GameSkillResutlEffect.MoveUp:
                e.Mov = 140;
                break;

            case GameSkillResutlEffect.Violent:
                e.Str = 200;
                e.Vit = 50;
                break;
            }

            addEffect(e);
        }
        break;

        case GameSkillResutlType.Curse:
        {
//                     if ( checkEffect( GameSkillResutlEffect.MagImmunity ) )
//                     {
//                         return;
//                     }

            GameBattleUnitEffect e = new GameBattleUnitEffect();
            e.Effect = sk.ResultEffect;
            e.Turn   = 3;

            addEffect(e);
        }
        break;

        case GameSkillResutlType.None:
        case GameSkillResutlType.Special:
        {
            //                     if ( checkEffect( GameSkillResutlEffect.MagImmunity ) )
            //                     {
            //                         return;
            //                     }

            switch (sk.OtherEffect)
            {
            case GameSkillOtherEffect.AttackPoison:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.Effect = GameSkillResutlEffect.Poison;
                e.Turn   = 3;

                addEffect(e);
            }
            break;

            case GameSkillOtherEffect.AttackPalsy:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.Effect = GameSkillResutlEffect.Palsy;
                e.Turn   = 3;

                addEffect(e);
            }
            break;

            case GameSkillOtherEffect.AttackSilence:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.Effect = GameSkillResutlEffect.Silence;
                e.Turn   = 3;

                addEffect(e);
            }
            break;

            case GameSkillOtherEffect.AttackFetter:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.Effect = GameSkillResutlEffect.Fetter;
                e.Turn   = 3;

                addEffect(e);
            }
            break;

            case GameSkillOtherEffect.Invincible0:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.Effect = GameSkillResutlEffect.PhyImmunity;
                e.Turn   = 3;

                addEffect(e);
            }
            break;

            case GameSkillOtherEffect.Invincible1:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.Effect = GameSkillResutlEffect.MagImmunity;
                e.Turn   = 3;

                addEffect(e);
            }
            break;

            case GameSkillOtherEffect.AbilityDown:
            {
                for (int i = 0; i < effects.Count;)
                {
                    if (effects[i].Effect == GameSkillResutlEffect.StrUp ||
                        effects[i].Effect == GameSkillResutlEffect.VitUp ||
                        effects[i].Effect == GameSkillResutlEffect.IntUp ||
                        effects[i].Effect == GameSkillResutlEffect.MoveUp ||
                        effects[i].Effect == GameSkillResutlEffect.Violent)
                    {
                        destroyEffect(i);
                    }
                    else
                    {
                        i++;
                    }
                }
            }
            break;

            case GameSkillOtherEffect.HealAll:
            {
                for (int i = 0; i < effects.Count;)
                {
                    if (effects[i].Effect == GameSkillResutlEffect.Poison ||
                        effects[i].Effect == GameSkillResutlEffect.Palsy ||
                        effects[i].Effect == GameSkillResutlEffect.Silence ||
                        effects[i].Effect == GameSkillResutlEffect.Fetter)
                    {
                        destroyEffect(i);
                    }
                    else
                    {
                        i++;
                    }
                }
            }
            break;

            case GameSkillOtherEffect.AbilityUp:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.OtherEffect = GameSkillOtherEffect.AbilityUp;
                e.Turn        = 1;

                e.Str = 140;
                e.Vit = 200;
                e.Int = 140;
                e.Mov = 100;

                addEffect(e);
            }
            break;
            }

            switch (sk.ResultEffect)
            {
            case GameSkillResutlEffect.Clear:
            {
                for (int i = 0; i < effects.Count;)
                {
                    if (effects[i].Effect == GameSkillResutlEffect.StrUp ||
                        effects[i].Effect == GameSkillResutlEffect.VitUp ||
                        effects[i].Effect == GameSkillResutlEffect.IntUp ||
                        effects[i].Effect == GameSkillResutlEffect.MoveUp ||
                        effects[i].Effect == GameSkillResutlEffect.Violent)
                    {
                        destroyEffect(i);
                    }
                    else
                    {
                        i++;
                    }
                }
            }
            break;

            case GameSkillResutlEffect.PhyImmunity:
            case GameSkillResutlEffect.MagImmunity:
            case GameSkillResutlEffect.Miss:
            case GameSkillResutlEffect.SummonKiller:
            case GameSkillResutlEffect.Under:
            {
                GameBattleUnitEffect e = new GameBattleUnitEffect();
                e.Effect = sk.ResultEffect;
                e.Turn   = 3;

                addEffect(e);
            }
            break;
            }
        }
        break;
        }
    }
Beispiel #3
0
    public void addEffect(GameBattleUnitEffect e)
    {
        for (int i = 0; i < effects.Count; i++)
        {
            if (effects[i].Effect == e.Effect)
            {
//                 e.gameObject = effects[ i ].gameObject;
//                 effects[ i ] = e;
                return;
            }
        }

        effects.Add(e);

        if (effectsObject == null)
        {
            effectsObject      = new GameObject();
            effectsObject.name = "effects";
            effectsObject.transform.SetParent(gameObject.transform);
            effectsObject.transform.localPosition = Vector3.zero;
        }

        GameObject    obj = Instantiate <GameObject>(Resources.Load <GameObject>("Prefab/Misc/Man_eff"));
        GameAnimation ani = obj.GetComponent <GameAnimation>();

        ani.offsetX = GameDefine.BATTLE_OFFSET_X;
        ani.offsetY = GameDefine.BATTLE_OFFSET_Y;

        Transform trans = obj.transform;

        trans.SetParent(effectsObject.transform);
        trans.localPosition = Vector3.zero;

        e.gameObject = obj;

        switch (e.OtherEffect)
        {
        case GameSkillOtherEffect.AbilityUp:
            ani.playAnimation(23, 45);
            break;
        }

        switch (e.Effect)
        {
        case GameSkillResutlEffect.StrUp:
        case GameSkillResutlEffect.VitUp:
        case GameSkillResutlEffect.IntUp:
        case GameSkillResutlEffect.Violent:
            ani.playAnimation(23, 45);
            break;

        case GameSkillResutlEffect.MoveUp:
            ani.playAnimation(1, 23);
            trans.localPosition = new Vector3(0.0f, 0.0f, 1000.0f);
            break;

        case GameSkillResutlEffect.PhyImmunity:
            ani.playAnimation(129, 154);
            break;

        case GameSkillResutlEffect.MagImmunity:
            ani.playAnimation(109, 129);
            break;

        case GameSkillResutlEffect.Miss:
            ani.playAnimation(87, 109);
            break;

        case GameSkillResutlEffect.Poison:
//                ani.playAnimation( 154 , 187 );
            break;

        case GameSkillResutlEffect.Palsy:
//                ani.playAnimation( 154 , 187 );
            break;

        case GameSkillResutlEffect.Silence:
            ani.playAnimation(45, 87);
            break;

        case GameSkillResutlEffect.Fetter:
            ani.playAnimation(154, 187);
            break;

        case GameSkillResutlEffect.Clear:
            break;

        case GameSkillResutlEffect.SummonKiller:
            break;

        case GameSkillResutlEffect.Summon:
            break;

        case GameSkillResutlEffect.SummonRelive:
            break;

        case GameSkillResutlEffect.Under:
            ani.playAnimation(1, 23);
            trans.localPosition = new Vector3(0.0f, 0.0f, 1000.0f);
            break;
        }

        updateEffects();
    }