示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
文件: item.cpp 项目: miki151/keeperrl
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;
    }
  }
}