Exemplo n.º 1
0
bool Game_Actor::UseItem(int item_id, const Game_Battler* source) {
	const RPG::Item* item = ReaderUtil::GetElement(Data::items, item_id);
	if (!item) {
		Output::Warning("UseItem: Can't use invalid item %d", item_id);
		return false;
	}

	if (IsDead() && item->type != RPG::Item::Type_medicine) {
		return false;
	}

	if (item->type == RPG::Item::Type_book) {
		return LearnSkill(item->skill_id);
	}

	if (item->type == RPG::Item::Type_material) {
		SetBaseMaxHp(GetBaseMaxHp() + item->max_hp_points);
		SetBaseMaxSp(GetBaseMaxSp() + item->max_sp_points);
		SetBaseAtk(GetBaseAtk() + item->atk_points2);
		SetBaseDef(GetBaseDef() + item->def_points2);
		SetBaseAgi(GetBaseAgi() + item->agi_points2);
		SetBaseSpi(GetBaseSpi() + item->spi_points2);

		return true;
	}

	return Game_Battler::UseItem(item_id, source);
}
Exemplo n.º 2
0
int Game_Battler::GetMaxSp() const {
	return GetBaseMaxSp();
}
Exemplo n.º 3
0
void Game_Actor::SetBaseMaxSp(int maxsp) {
	data.sp_mod += maxsp - GetBaseMaxSp();
	SetSp(data.current_sp);
}
Exemplo n.º 4
0
int Game_Actor::GetBaseMaxSp() const {
	return GetBaseMaxSp(true);
}
Exemplo n.º 5
0
void Game_Actor::SetBaseMaxSp(int maxsp) {
	int new_sp_mod = GetData().sp_mod + (maxsp - GetBaseMaxSp());
	GetData().sp_mod = new_sp_mod;

	SetSp(GetData().current_sp);
}