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


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

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


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

示例1: removeEquipment

void BattleCharacterEquipment::removeEquipment(EquipmentPiece *equipment) {
	switch (equipment->getType()) {
	case EquipmentPiece::WEAPON:
		{
			Weapon *weapon = dynamic_cast<Weapon*>(equipment);
			switch (weapon->getSubtype()) {
			case Weapon::MAINHAND:
				setMainhand(0);
				break;
			case Weapon::OFFHAND:
				setOffhand(0);
				break;
			case Weapon::TWOHANDED:
				setTwohanded(0);
				break;
			}
		}
		break;
	case EquipmentPiece::ARMOR:
		{
			Armor *armor = dynamic_cast<Armor*>(equipment);
			switch (armor->getSubtype()) {
			case Armor::HELMET:
				setHelmet(0);
				break;
			case Armor::TORSO:
				setTorso(0);
				break;
			case Armor::LEGGINGS:
				setLeggings(0);
				break;
			case Armor::GLOVES:
				setGloves(0);
				break;
			case Armor::BOOTS:
				setBoots(0);
				break;
			}
		}
		break;
	case EquipmentPiece::ACCESSORY:
		{
			Accessory *accessory = dynamic_cast<Accessory*>(equipment);
			switch (accessory->getSubtype()) {
			case Accessory::EARRING:
				setEarring(0);
				break;
			case Accessory::NECKLACE:
				setNecklace(0);
				break;
			case Accessory::RING:
				setRing(0);
				break;
			}
		}
		break;
	}
}
开发者ID:juniordiscart,项目名称:RPGMaker,代码行数:58,代码来源:BattleCharacterEquipment.cpp

示例2: equipmentFilter

bool MenuEquipmentScreen::equipmentFilter(EquipmentPiece *equipment) {
	// Filter by type (Weapon, Armor or Accessory)
	EquipmentPiece::Type typeFilter;
	if (_equippedEquipmentItems.indexOf(_currentEquippedEquipmentItem) < 2)
		typeFilter = EquipmentPiece::WEAPON;
	else if (_equippedEquipmentItems.indexOf(_currentEquippedEquipmentItem) < 7)
		typeFilter = EquipmentPiece::ARMOR;
	else
		typeFilter = EquipmentPiece::ACCESSORY;

	if (equipment->getType() != typeFilter)
		return false;

	// Filter by subtype
	if (typeFilter == EquipmentPiece::WEAPON) {
		Weapon *weapon = dynamic_cast<Weapon*>(equipment);
		int subTypeFilter = _equippedEquipmentItems.indexOf(_currentEquippedEquipmentItem);

		if ((weapon->getSubtype() != Weapon::TWOHANDED) && (subTypeFilter != weapon->getSubtype()))
			return false;

	} else if (typeFilter == EquipmentPiece::ARMOR) {
		Armor *armor = dynamic_cast<Armor*>(equipment);
		int subTypeFilter = _equippedEquipmentItems.indexOf(_currentEquippedEquipmentItem);

		if (subTypeFilter != armor->getSubtype())
			return false;

	} else if (typeFilter == EquipmentPiece::ACCESSORY) {
		Accessory *accessory = dynamic_cast<Accessory*>(equipment);
		int subTypeFilter = _equippedEquipmentItems.indexOf(_currentEquippedEquipmentItem);

		if (subTypeFilter != accessory->getSubtype())
			return false;
	}

	QVector<QPair<Class*, int>> classes = equipment->getClasses();
	for (int i = 0; i < classes.size(); i++) {
		QPair<Class*, int> it = classes.at(i);
		if ((it.first == _character->getClass()) && (it.second <= _character->getLevel()))
			return true;
	}

	return false;
}
开发者ID:juniordiscart,项目名称:RPGMaker,代码行数:45,代码来源:MenuEquipmentScreen.cpp


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