当前位置: 首页>>代码示例>>C++>>正文


C++ Weapon::addSpell方法代码示例

本文整理汇总了C++中Weapon::addSpell方法的典型用法代码示例。如果您正苦于以下问题:C++ Weapon::addSpell方法的具体用法?C++ Weapon::addSpell怎么用?C++ Weapon::addSpell使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Weapon的用法示例。


在下文中一共展示了Weapon::addSpell方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: loadEquipmentItems

void CharacterCore::loadEquipmentItems()
{
	clearEquippedItems();

	Weapon* eqWeapon = nullptr;
	Item* eqBack = nullptr;
	Item* eqBody = nullptr;
	Item* eqHead = nullptr;
	Item* eqNeck = nullptr;
	Item* eqRing1 = nullptr;
	Item* eqRing2 = nullptr;
	if (!m_data.equippedWeapon.empty() && g_resourceManager->getItemBean(m_data.equippedWeapon) != nullptr)
	{
		eqWeapon = new Weapon(*g_resourceManager->getItemBean(m_data.equippedWeapon));
		// add equipped spells and their modifiers
		for (int slot = 0; slot < m_data.equippedWeaponSlots.size(); slot++)
		{
			eqWeapon->addSpell(slot, m_data.equippedWeaponSlots[slot].first, false);
			for (auto& it : m_data.equippedWeaponSlots[slot].second)
			{
				eqWeapon->addModifier(slot, it, false);
			}
		}
	}
	if (!m_data.equippedBack.empty() && g_resourceManager->getItemBean(m_data.equippedBack) != nullptr)
	{
		eqBack = new Item(*g_resourceManager->getItemBean(m_data.equippedBack));
	}
	if (!m_data.equippedBody.empty() && g_resourceManager->getItemBean(m_data.equippedBody) != nullptr)
	{
		eqBody = new Item(*g_resourceManager->getItemBean(m_data.equippedBody));
	}
	if (!m_data.equippedHead.empty() && g_resourceManager->getItemBean(m_data.equippedHead) != nullptr)
	{
		eqHead = new Item(*g_resourceManager->getItemBean(m_data.equippedHead));
	}
	if (!m_data.equippedNeck.empty() && g_resourceManager->getItemBean(m_data.equippedNeck) != nullptr)
	{
		eqNeck = new Item(*g_resourceManager->getItemBean(m_data.equippedNeck));
	}
	if (!m_data.equippedRing1.empty() && g_resourceManager->getItemBean(m_data.equippedRing1) != nullptr)
	{
		eqRing1 = new Item(*g_resourceManager->getItemBean(m_data.equippedRing1));
	}
	if (!m_data.equippedRing2.empty() && g_resourceManager->getItemBean(m_data.equippedRing2) != nullptr)
	{
		eqRing2 = new Item(*g_resourceManager->getItemBean(m_data.equippedRing2));
	}
	
	m_equippedItems.insert({ ItemType::Equipment_weapon, eqWeapon });
	m_equippedItems.insert({ ItemType::Equipment_back, eqBack });
	m_equippedItems.insert({ ItemType::Equipment_body, eqBody });
	m_equippedItems.insert({ ItemType::Equipment_head, eqHead });
	m_equippedItems.insert({ ItemType::Equipment_neck, eqNeck });
	m_equippedItems.insert({ ItemType::Equipment_ring_1, eqRing1 });
	m_equippedItems.insert({ ItemType::Equipment_ring_2, eqRing2 });
}
开发者ID:G-GFFD,项目名称:Cendric2,代码行数:57,代码来源:CharacterCore.cpp

示例2: reloadWeaponSlots

void CharacterCore::reloadWeaponSlots() {
	Weapon* wep = dynamic_cast<Weapon*>(m_equippedItems.at(ItemType::Equipment_weapon));
	if (wep == nullptr) return;
	wep->reload();
	for (int slot = 0; slot < m_data.equippedWeaponSlots.size(); slot++) {
		wep->addSpell(slot, m_data.equippedWeaponSlots[slot].first, false);
		for (int i = 0; i < m_data.equippedWeaponSlots[slot].second.size(); ++i) {
			wep->addModifier(slot, i, m_data.equippedWeaponSlots[slot].second[i], false);
		}
	}
}
开发者ID:StanislavGrinkov,项目名称:Cendric2,代码行数:11,代码来源:CharacterCore.cpp


注:本文中的Weapon::addSpell方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。