void Item::tick(double time, Position position) { if (fire->isBurning()) { Debug() << getName() << " burning " << fire->getSize(); position.setOnFire(fire->getSize()); modViewObject().setAttribute(ViewObject::Attribute::BURNING, fire->getSize()); fire->tick(); if (!fire->isBurning()) { position.globalMessage(getTheName() + " burns out"); discarded = true; } } specialTick(time, position); }
void Item::tick(double time, Level* level, Vec2 position) { if (fire.isBurning()) { Debug() << getName() << " burning " << fire.getSize(); level->getSquare(position)->setOnFire(fire.getSize()); viewObject.setBurning(fire.getSize()); fire.tick(level, position); if (!fire.isBurning()) { level->globalMessage(position, getTheName() + " burns out"); discarded = true; } } specialTick(time, level, position); }
void Item::tick(Position position) { PROFILE_BLOCK("Item::tick"); if (fire->isBurning()) { INFO << getName() << " burning "; position.fireDamage(0.2); modViewObject().setModifier(ViewObject::Modifier::BURNING); fire->tick(); if (!fire->isBurning()) { position.globalMessage(getTheName() + " burns out"); discarded = true; } } specialTick(position); if (timeout) { if (position.getGame()->getGlobalTime() >= *timeout) { discarded = true; } } }