Exemplo n.º 1
0
    void OnEquipmentChanged(Equipment newItem, Equipment oldItem)
    {
        if (newItem != null)
        {
            HP.AddModifier(newItem.HP);
            SP.AddModifier(newItem.SP);

            MIN_ATT.AddModifier(newItem.MIN_ATT);
            MAX_ATT.AddModifier(newItem.MAX_ATT);

            CRI_RATE.AddModifier(newItem.CRI_RATE);
            DEF.AddModifier(newItem.DEF);
            ATT_SPD.AddModifier(newItem.ATT_SPD);
            MOV_SPD.AddModifier(newItem.MOV_SPD);

            STR.AddModifier(newItem.STR);
            ACC.AddModifier(newItem.ACC);
            SPR.AddModifier(newItem.SPR);
            CON.AddModifier(newItem.CON);
            AGI.AddModifier(newItem.CON);

            CalculateMaxHP();
            CalculateMaxSP();
            CalculateCurrentDMG();
            CalculateCurrentCRI_RATE();
            CalculateCurrentDEF();
            CalculateCurrentATT_SPD();
            CalculateCurrentMOV_SPD();
        }

        if (oldItem != null)
        {
            HP.RemoveModifier(oldItem.HP);
            SP.RemoveModifier(oldItem.SP);

            MIN_ATT.RemoveModifier(oldItem.MIN_ATT);
            MAX_ATT.RemoveModifier(oldItem.MAX_ATT);

            CRI_RATE.RemoveModifier(oldItem.CRI_RATE);
            DEF.RemoveModifier(oldItem.DEF);
            ATT_SPD.RemoveModifier(oldItem.ATT_SPD);
            MOV_SPD.RemoveModifier(oldItem.MOV_SPD);

            STR.RemoveModifier(oldItem.STR);
            ACC.RemoveModifier(oldItem.ACC);
            SPR.RemoveModifier(oldItem.SPR);
            CON.RemoveModifier(oldItem.CON);
            AGI.RemoveModifier(oldItem.CON);

            CalculateMaxHP();
            CalculateMaxSP();
            CalculateCurrentDMG();
            CalculateCurrentCRI_RATE();
            CalculateCurrentDEF();
            CalculateCurrentATT_SPD();
            CalculateCurrentMOV_SPD();
        }
    }