Files
OzgGameRPG/Classes/RPGComputingResults.cpp
T
2014-04-29 22:26:10 +08:00

79 lines
2.3 KiB
C++

//
// RPGComputingResults.cpp
// OzgGameRPG
//
// Created by ozg on 14-4-8.
//
//
#include "RPGComputingResults.h"
#include "OzgCCUtility.h"
int RPGComputingResults::attackResults(float attack, float defense)
{
attack = attack / 0.25;
attack = OzgCCUtility::randomFloat(attack - (attack * 0.05), attack + (attack * 0.05));
defense = defense / 0.5;
defense = OzgCCUtility::randomFloat(defense - (defense * 0.025), defense + (defense * 0.025));
int results = (int)(attack - defense);
if(results < 0)
results = 0;
return results;
}
int RPGComputingResults::skillAttackResults(float srcSkillAttack, float skillAttack, RPGSkillAttr srcAttackAttr, float targetSkillDefense, RPGSkillAttr targetDefenseAttr)
{
int results = RPGComputingResults::attackResults(srcSkillAttack, targetSkillDefense);
skillAttack = skillAttack / 0.25;
skillAttack = OzgCCUtility::randomFloat(skillAttack - (skillAttack * 0.05), skillAttack + (skillAttack * 0.05));
results = results + (int)skillAttack;
//下面是属性处理
//火克冰
if(srcAttackAttr == kRPGSkillAttrFire && targetDefenseAttr == kRPGSkillAttrIce)
results = results + (results * 0.5);
else if(srcAttackAttr == kRPGSkillAttrIce && targetDefenseAttr == kRPGSkillAttrFire)
results = results - (results * 0.5);
//无属性克制除自己属性以外的所有属性
else if(srcAttackAttr == kRPGSkillAttrNone && targetDefenseAttr != kRPGSkillAttrNone)
results = results + (results * 0.5);
else if(srcAttackAttr != kRPGSkillAttrNone && targetDefenseAttr == kRPGSkillAttrNone)
results = results - (results * 0.5);
return results;
}
int RPGComputingResults::skillCureResults(float srcSkillAttack, float skillAttack)
{
//不需要浮动值
srcSkillAttack = srcSkillAttack / 0.5;
skillAttack = skillAttack / 0.25;
int results = (int)(srcSkillAttack + skillAttack);
return results;
}
int RPGComputingResults::itemCure(int itemsId)
{
switch (itemsId)
{
case 6:
//草药治疗,返回的是HP
return 100;
break;
case 7:
//党参治疗,返回的是MP
return 30;
break;
default:
return 0;
break;
}
}