mirror of
https://github.com/wu736139669/OzgGameRPG.git
synced 2026-08-05 06:24:38 +00:00
79 lines
2.3 KiB
C++
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;
|
|
}
|
|
|
|
}
|