CHero::CHero(void) : CUnit(UT_HERO) { SetHP(100); SetMaxHP(100); SetAttack(9); SetSpeed(4); SetRange(1); SetEXPValue(0); SetHasAttacked(false); SetShielded(false); SetIsMoving(false); // TODO: Setup abilities when they are in place5 // Finds specified spell for the Hero CAbilityManager * pAM = CAbilityManager::GetInstance(); GiveSpell(SP_BLANK); GiveSpell(SP_BLANK); GiveSpell(SP_BLANK); GiveSpell(SP_BLANK); for (int i=0; i<4;++i) m_ncooldown[i]=0; }
void Hero::ResetHero() { SetPos(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); LV = 0; MAX_EXP = 20; EXP = 0; MAX_DEF = 10; MAX_MP = 10; SowrdCharge = 0.0; MAX_SC = 500; state = STAND; speedup = false; TargetX = GetX(); TargetY = GetY(); locked = false; Attack = 10; lives = 1; Isreborned = false; adddmg = 0; score = 0; peerless = false; peerless_time = 0; ShootCD = 15; battlestate = 0; bulletnum = 1; RageCountDown = 250; countaddMp = 200; bosskill = 0; kills = 0; modescore = 0; maxcombo = 0; itemget = 0; combo = 0; expadded = 0; bstats = no; varyHP(100); SetMaxHP(100); SetDEF(0); SetSpeed(SPEED); SetDMG(5); SetAlive(true); BeTheGod(250); bulletspeed = 800; SetExtraDMG(0); SetDelayrender(false); recoverMP = 175; SetMP(10); SetCrit(1); SetCritDMG(2); ResetBreakArmor(); SetDodge(1); lvuprate = 1; magic = 0; atk = 0; dex = 0; knockback = 0; ObjectPool::GetObjPool().UnLockToken(); ObjectPool::GetObjPool().GetSkillToken(LENSBULLET); SFXManager::GetSFXManager().PlaySFX(GETSKILLSFX); }
bool Player::LevelUp() { if (GetXP() < GetXPToLevelUp(level + 1)) return false; level++; unsigned int statIncreases[3] = { 0, 0, 0 }; float statMultipliers[3] = { 0, 0, 0 }; statMultipliers[0] = 13.0f; statMultipliers[1] = className == "Fighter" ? 8.0f : 6.0f; statMultipliers[2] = className == "Rogue" ? 8.0f : 6.0f; for (int i = 0; i < 3; i++) { float base = std::tanh(level / 30.0) * ((level % 2) + 1); statIncreases[i] += static_cast<int>(1 + statMultipliers[i] * base); } SetHP(GetHP() + statIncreases[0]); SetMaxHP(GetMaxHP() + statIncreases[0]); SetStrength(GetStrength() + statIncreases[1]); SetAgility(GetAgility() + statIncreases[2]); std::cout << GetName() << " grew to level " << level << "!\n"; std::cout << "Health +" << statIncreases[0] << " -> " << GetMaxHP() << std::endl; std::cout << "Strength +" << statIncreases[1] << " -> " << GetStrength() << std::endl; std::cout << "Agility +" << statIncreases[2] << " -> " << GetAgility() << std::endl; std::cout << "----------------\n"; return true; }
bool Hero::AddStats(int type) { switch (type) { case ADD_ATK: atk++; if (atk > 15) { atk = 15; return false; } if (atk % 5 == 0) { SetKnockBack(GetKnockBack() + 5); SetExtraDMG(GetExtraDMG() + GetDMG()*0.2); BulletsAdjust(GetBullets() + 1); } SetBulletSpeed(GetBulletSpeed() - atk * 3); SetDMG(GetDMG() + atk * 3); SetMaxHP(GetMaxHP() + atk * 10); break; case ADD_DEX: dex++; if (dex > 15) { dex = 15; return false; } if (dex % 5 == 0) { SetCritDMG(GetCritDMG() + 0.5); ShootCD -= 3; } SetBulletSpeed(GetBulletSpeed() + dex * 3); SetCrit(GetCrit() + 3+dex/5); SetDodge(GetDodge() + 2+dex/5); break; case ADD_INT: magic++; if (magic > 15) { magic = 15; return false; } if (magic % 5 == 0) { SetSpeed(GetSpeed() + 100); recoverMP = 175 - 10 * magic; } SetMaxMP(GetMaxMP() + 2 * magic); break; } return true; }
CSwordsman::CSwordsman(void) : CUnit(UT_SWORDSMAN) { SetHP(25); SetMaxHP(25); SetAttack(8); SetSpeed(3); SetRange(1); SetEXPValue(75); SetHasAttacked(false); SetShielded(false); SetIsMoving(false); // TODO: Setup abilities when they are in place }
BOOL CGate::InitProperty(CGateList::tagGate *p) { SetName(p->cName);//名字 SetLenth(p->wLenth);//长 SetWidth(p->wWidth);//宽 SetLevel(p->wLevel);//等级 SetGraphicsID(p->dwModelId);//模型ID SetMaxHP(p->wMaxHp);//最大HP SetHP(p->wMaxHp); //当前HP SetUnAttack(p->bIsunbeatable);//是否无敌 SetBlockType(p->byBlockType);//阻挡类型 SetDef(p->lDef);//物防 SetMagicDef(p->lMagicDef);//魔防 SetNameColor(p->wNameColor);//名字颜色 SetHitSound(string(p->cHitSound));//击中音效 SetDestorySound(string(p->cDestorySound));//损毁音效 SetOpenSound(string(p->cOpenSound));//打开音效 SetCloseSound(string(p->cCloseSound));//关闭音效 return TRUE; }