示例#1
0
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;
}
示例#2
0
void CreatureInfo::XmlAddSkill(char * val)
{
	if( val )
	{
		AddSkill( atoi(val) );
	}
}
示例#3
0
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 &)));
}