/// <summary>
    /// Manages speed bars
    /// </summary>
    public virtual void UpdateTime()
    {
        pc.ResetPosition();

        if (status == STATUS.DEAD)
        {
            ResetTimer();
            return; //Do nothing if dead
        }

        CheckLevel();
        CheckLowHealth();

        if (moveTimer < 100)
        {
            float addTime = Time.deltaTime + (Spd / (25f) * BattleManager.gameSpeed); //Calculate speed gague incremental increase

            //Tile Effect
            if (pc.GetTileEffect1() == Tile.EFFECT.STUCK)
            {
                addTime /= 2;                                           //Slow if standing on an impeding tile
            }
            if (pc.GetTileEffect2() == Tile.EFFECT.STUCK)
            {
                addTime /= 2;
            }

            //Status Effect
            if (ec != null)
            {
                if (ec.CheckEffect("SWIFT"))
                {
                    addTime *= 1.7f;                          //Increase by 70%
                }
                else if (ec.CheckEffect("SLOW"))
                {
                    addTime *= 0.5f;                              //Decrease by half
                }
            }

            moveTimer += addTime;

            if (moveTimer > 100)
            {
                moveTimer = 100;
            }
        }
        else if (moveTimer == 100)
        {
            Ready = true;

            //Roll status effects
            ec.StatusEffectsTurn();
            ec.TileEffectsTurn(pc.tile.effect1);
            ec.TileEffectsTurn(pc.tile.effect2);

            moveTimer = 100.1f; //Prevent this block from being executed again before turn is used
        }
    }
Exemple #2
0
    /***TEMPORARY CALCULATIONS***/

    /// <summary>
    /// Physical effect calculation - damage done by physical ATK
    /// </summary>
    public void PhysicalEffectCalculation()
    {
        int damage  = user.Atk;
        int defense = target.Def;

        //EFFECT - SWAPPED
        if (ec.CheckEffect("SWAPPED"))
        {
            damage = user.Mag + user.Vlt;
        }

        physicalDmg = damage - defense;

        //Defense Modifiers
        if (target.ec.CheckEffect("ARMOR"))
        {
            physicalDmg = 0;                                 //EFFECT - ARMOR
        }
        if (target.ec.CheckEffect("PROTECT"))
        {
            physicalDmg /= 2;                                   //EFFECT - PROTECT
        }
        //Attack Modifiers
        if (ec.CheckEffect("INTENSE"))
        {
            physicalDmg *= 3;                            //EFFECT - INTENSE
        }
        if (physicalDmg < 0)
        {
            physicalDmg = 0;
        }
    }