Ejemplo n.º 1
0
	INT CombatCore_T::MagicalNearDamage(Obj_Character& rMe, Obj_Character& rTar, INT nAdditionAttack, INT nAdditionDefence)
	{
		__ENTER_FUNCTION
		INT	nDamage;
		INT nAttack = Attr_VerifyGeneralAttack(rMe.GetAttackMagicNear()+nAdditionAttack);
		INT nDefence = Attr_VerifyDefence(rTar.GetDefenceMagicNear()+nAdditionDefence);
		nDamage = NormalDamage(rTar, nAttack, nDefence, IATTRIBUTE_SHIELD_MAGIC_NEAR);

		INT iResist =  rTar.GetMagicNearAttReduce();
		nDamage = GetFinalDamages(nDamage, iResist);
		return nDamage;
		__LEAVE_FUNCTION
			return 0;
	}
Ejemplo n.º 2
0
VOID StdImpact069_T::FinalDamage( INT * vDamage, Obj_Character &rMe ) const
{
    vDamage[DAMAGE_TYPE_NEAR]	-= rMe.GetDefenceNear();
    if( rMe.GetNearAttReduce() != 0 )
        vDamage[DAMAGE_TYPE_NEAR]	/= rMe.GetNearAttReduce();

    vDamage[DAMAGE_TYPE_FAR]	-= rMe.GetDefenceFar();
    if( rMe.GetNearAttReduce() != 0 )
        vDamage[DAMAGE_TYPE_FAR]	/= rMe.GetFarAttReduce();

    vDamage[DAMAGE_TYPE_MAGIC_NEAR]		-= rMe.GetDefenceMagicNear();
    if( rMe.GetNearAttReduce() != 0 )
        vDamage[DAMAGE_TYPE_MAGIC_NEAR]		/= rMe.GetMagicNearAttReduce();

    vDamage[DAMAGE_TYPE_MAGIC_FAR]		-= rMe.GetDefenceMagicFar();
    if( rMe.GetFarAttReduce() != 0 )
        vDamage[DAMAGE_TYPE_MAGIC_FAR]		/= rMe.GetMagicFarAttReduce();

    vDamage[DAMAGE_TYPE_GOLD]	-= rMe.GetDefenceGold();
    vDamage[DAMAGE_TYPE_WOOD]	-= rMe.GetDefenceWood();
    vDamage[DAMAGE_TYPE_WATER]	-= rMe.GetDefenceWater();
    vDamage[DAMAGE_TYPE_FIRE]	-= rMe.GetDefenceFire();
    vDamage[DAMAGE_TYPE_SOIL]	-= rMe.GetDefenceSoil();
}