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


C++ Spell::getCost方法代码示例

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


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

示例1: castSpell

Spell* Champion::castSpell(uint8 slot, float x, float y, Unit* target) {
   if(slot >= spells.size()) {
      return 0;
   }
   
   Spell* s = spells[slot];
   
   if(s->getCost() > stats->getCurrentMana() || s->getState() != STATE_READY) {
      return 0;
   }
   
   s->cast(x, y, target);
   stats->setCurrentMana(stats->getCurrentMana()-s->getCost());
   return s;
}
开发者ID:Blade12629,项目名称:IntWars,代码行数:15,代码来源:Champion.cpp

示例2: castSpell

Spell* Champion::castSpell(uint8 slot, float x, float y, Unit* target, uint32 futureProjNetId) {
   if(slot >= spells.size()) {
      return 0;
   }
   
   Spell* s = spells[slot];
   
   s->setSlot(slot);//temporary hack until we redo spells to be almost fully lua-based
   
   if(s->getCost() > stats->getCurrentMana() || s->getState() != STATE_READY) {
      return 0;
   }
   
   s->cast(x, y, target, futureProjNetId);
   stats->setCurrentMana(stats->getCurrentMana()-s->getCost());
   return s;
}
开发者ID:noobasaurus,项目名称:IntWars,代码行数:17,代码来源:Champion.cpp

示例3: useSpell

//Spell stuff
void GameEngine::useSpell(Point mouseLoc) {
	Spell spell = invLog.getSpell(mouseLoc);

	if (spell.isUnlocked()) {
		if (hero->getMana() < spell.getCost())
			log.registerEvent("Not enough mana!");
		else {
			log.registerEvent(spell.getTitle() + " activated!");

			Point start = hero->getLoc() + Point(-1, -1);
			Point end = hero->getLoc() + Point(2, 2);

			int type = spell.getSpellType();
			switch (type) {
				case 1: //Field of fire
				{
					spell.setTurnActivated(turns);

					lib.loop_portion(start, end, [&](Point p) {
						map[p.x()][p.y()].setSpell(spell);
					});
					break;
				}
				case 2: //Death Rattle
				{
					lib.loop_portion(start, end, [&](Point p) {
						Actor* a = map[p.x()][p.y()].getActor();

						if (a != NULL) {
							Point relToHero = p - hero->getLoc();
							Point d(p.x() + relToHero.x(), p.y() + relToHero.y());
							
							a->doDMG(2);
							if (a->getHP() <= 0)
								killMonster(a->getLoc());

							if (moveableCell(d)) {
								map[p.x()][p.y()].setActor(NULL);
								a->setLoc(d);
								map[d.x()][d.y()].setActor(a);
							}
						}
					});
					break;
				}
				case 3: //Blessing of Katar
				{
					hero->changeHP(10);
					break;
				}
				case 4: //Ice Block
				{
					spell.setTurnActivated(turns);

					lib.loop_portion(start, end, [&](Point p) {
						map[p.x()][p.y()].setSpell(spell);
					});
					break;
				}
				case 5: //Death Curse
				{
					spell.setTurnActivated(turns);

					lib.loop_portion(start, end, [&](Point p) {
						Actor* a = map[p.x()][p.y()].getActor();
						if (a != NULL) {
							a->setSpell(spell);
						}
					});
					break;
				}
				case 6: //Fist of Katar
				{
					map[hero->getLoc().x()][hero->getLoc().y()].setSpell(spell);
					break;
				}
			}

			hero->changeMana(-spell.getCost());
			lib.play("Spell" + to_string(spell.getSpellType()));
		}
	}
}
开发者ID:ntaylorbishop,项目名称:HGAMRoguelike,代码行数:84,代码来源:GameEngine.cpp


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