void GlobalEnemy::_Initialize() { // Add all new skills that should be available at the current experience level _skills.clear(); for(uint32_t i = 0; i < _skill_set.size(); ++i) AddSkill(_skill_set[i]); if(_skills.empty()) PRINT_WARNING << "No skills were added for the enemy: " << _id << std::endl; // Randomize the stats by using a random diff of 10% _max_hit_points = RandomDiffValue(_max_hit_points, _max_hit_points / 10.0f); _max_skill_points = RandomDiffValue(_max_skill_points, _max_skill_points / 10.0f); _experience_points = RandomDiffValue(_experience_points, _experience_points / 10.0f); _char_phys_atk.SetBase(RandomDiffValue(_char_phys_atk.GetBase(), _char_phys_atk.GetBase() / 10.0f)); _char_mag_atk.SetBase(RandomDiffValue(_char_mag_atk.GetBase(), _char_mag_atk.GetBase() / 10.0f)); _char_phys_def.SetBase(RandomDiffValue(_char_phys_def.GetBase(), _char_phys_def.GetBase() / 10.0f)); _char_mag_def.SetBase(RandomDiffValue(_char_mag_def.GetBase(), _char_mag_def.GetBase() / 10.0f)); _stamina.SetBase(RandomDiffValue(_stamina.GetBase(), _stamina.GetBase() / 10.0f)); // Multiply the evade value by 10 to permit the decimal to be kept float evade = _evade.GetBase() * 10.0f; _evade.SetBase(static_cast<float>(RandomDiffValue(evade, evade / 10.0f)) / 10.0f); _drunes_dropped = RandomDiffValue(_drunes_dropped, _drunes_dropped / 10.0f); // Set the current hit points and skill points to their new maximum values _hit_points = _max_hit_points; _skill_points = _max_skill_points; }
void CreatureInfo::XmlAddSkill(char * val) { if( val ) { AddSkill( atoi(val) ); } }
Character::Character(int classType){ skills_ = NULL; inv_ = NULL; class_type_ = classType; name_ = Class(); switch( classType ){ case CLASS_BARBARIAN: _BarbarianInit(); break; case CLASS_PALADIN: _PaladinInit(); break; case CLASS_ASSASSIN: _AssassinInit(); break; case CLASS_WIZARD: _WizardInit(); break; case CLASS_RANGER: _RangerInit(); break; case CLASS_DRUID: _DruidInit(); break; default: break; } max_hp_ = vitality_ * vitality_mod_; hp_ = max_hp_; attack_power_ = strength_ * power_mod_; max_initiative_ = 100; skills_ = new Skill*[8]; AddSkill(Skill::CreateSkill(skill_ranger_poisonarrow)); AddSkill(Skill::CreateSkill(skill_ranger_salve)); AddSkill(Skill::CreateSkill(skill_ranger_strongdraw)); AddSkill(Skill::CreateSkill(skill_ranger_firstaid)); AddSkill(Skill::CreateSkill(skill_ranger_cripplingshot)); AddSkill(Skill::CreateSkill(skill_ranger_preparation)); AddSkill(Skill::CreateSkill(skill_ranger_magicalarrow)); AddSkill(Skill::CreateSkill(skill_ranger_steadyshot)); SetSkill(0, 0); SetSkill(1, 1); SetSkill(2, 2); SetSkill(3, 3); SetSkill(4, 4); SetSkill(5, 5); SetSkill(6, 6); SetSkill(7, 7); inv_ = new Inventory(); }
DataEditorControl::DataEditorControl(Ui::MainWindow *ui) { //设置视图模型 mSoldierTableModule = new SoldierTableModule(this); mSoldierTableView = ui->soldierTableView; mSoldierTableView->setModel(mSoldierTableModule); mHorseTableModule = new HorseTableModule(this); mHorseTableView = ui->horseTableView; mHorseTableView->setModel(mHorseTableModule); mPWeaponTableModule = new PWeaponTableModule(this); mPWeaponTableView = ui->pweaponTableView; mPWeaponTableView->setModel(mPWeaponTableModule); mSWeaponTableModule = new SWeaponTableModule(this); mSWeaponTableView = ui->sweaponTableView; mSWeaponTableView->setModel(mSWeaponTableModule); mArmorTableModule = new ArmorTableModule(this); mArmorTableView = ui->armorTableView; mArmorTableView->setModel(mArmorTableModule); mShieldTableModule = new ShieldTableModule(this); mShieldTableView = ui->shieldTableView; mShieldTableView->setModel(mShieldTableModule); mSkillTableModule = new SkillTableModule(this); mSkillTableView = ui->skillTableView; mSkillTableView->setModel(mSkillTableModule); mEffectTableModule = new EffectTableModule(this); mEffectTableView = ui->effectTableView; mEffectTableView->setModel(mEffectTableModule); mSquadTableModule = new SquadTableModule(this); mSquadTableView = ui->squadTableView; mSquadTableView->setModel(mSquadTableModule); mSquadSkillTableModule = new SquadSkillTableModule(this); mSquadSkillTableView = ui->squadSkillTableView; mSquadSkillTableView->setModel(mSquadSkillTableModule); mStringTableModule = new StringTableModule(this); mStringTableView = ui->stringTableView; mStringTableView->setModel(mStringTableModule); mModBox = ui->modBox; mLangBox = ui->langBox; RefreshModList(); //连接消息 connect(ui->addMod,SIGNAL(clicked()),this,SLOT(AddMod())); connect(ui->addLang,SIGNAL(clicked()),this,SLOT(AddLang())); connect(ui->addSoldier,SIGNAL(clicked()),this,SLOT(AddSoldier())); connect(ui->delSoldier,SIGNAL(clicked()),this,SLOT(DelSoldier())); connect(ui->addHorse,SIGNAL(clicked()),this,SLOT(AddHorse())); connect(ui->delHorse,SIGNAL(clicked()),this,SLOT(DelHorse())); connect(ui->addPWeapon,SIGNAL(clicked()),this,SLOT(AddPWeapon())); connect(ui->delPWeapon,SIGNAL(clicked()),this,SLOT(DelPWeapon())); connect(ui->addSWeapon,SIGNAL(clicked()),this,SLOT(AddSWeapon())); connect(ui->delSWeapon,SIGNAL(clicked()),this,SLOT(DelSWeapon())); connect(ui->addArmor,SIGNAL(clicked()),this,SLOT(AddArmor())); connect(ui->delArmor,SIGNAL(clicked()),this,SLOT(DelArmor())); connect(ui->addShield,SIGNAL(clicked()),this,SLOT(AddShield())); connect(ui->delShield,SIGNAL(clicked()),this,SLOT(DelShield())); connect(ui->addSkill,SIGNAL(clicked()),this,SLOT(AddSkill())); connect(ui->delSkill,SIGNAL(clicked()),this,SLOT(DelSkill())); connect(ui->addEffect,SIGNAL(clicked()),this,SLOT(AddEffect())); connect(ui->delEffect,SIGNAL(clicked()),this,SLOT(DelEffect())); connect(ui->addSquad,SIGNAL(clicked()),this,SLOT(AddSquad())); connect(ui->delSquad,SIGNAL(clicked()),this,SLOT(DelSquad())); connect(ui->addSquadSkill,SIGNAL(clicked()),this,SLOT(AddSquadSkill())); connect(ui->delSquadSkill,SIGNAL(clicked()),this,SLOT(DelSquadSkill())); connect(ui->addString,SIGNAL(clicked()),this,SLOT(AddString())); connect(ui->delString,SIGNAL(clicked()),this,SLOT(DelString())); connect(ui->squadTableView,SIGNAL(clicked(const QModelIndex &)),this,SLOT(SelectSquad(const QModelIndex &))); }