Ejemplo n.º 1
0
void Calculator::calculateRaports(){
    raports_.clear();
    calculateBuilds();
    calculateMovements();
    calculateAttacks();
    calculateAssaults();

    Logger::write("Finished calculating");
    Logger::write(QString("Sending ").append(QString::number(raports_.size())).append(" raports"));
    preparedRaports(raports_);

    buildCommands_.clear();
    moveCommands_.clear();
    attackCommands_.clear();
    assaults_.clear();
    receivedCommands_ = 0;
}
Ejemplo n.º 2
0
  virtual void tick(double time) override {
    if (triggerAmounts.empty())
      calculateAttacks();
    if (control->getAliveCreatures().empty())
      return;
    if (lastAttack >= time - attackDelay || lastMyAttack >= time - myAttacksDelay)
      return;
    double lastAttackPoints = 0;
    for (const Creature* c : control->allCreatures)
      if (fightingCreatures.count(c))
        lastAttackPoints += c->getDifficultyPoints();
    bool firstAttack = lastAttackPoints == 0;
    double currentTrigger = getCurrentTrigger(time);
    if (lastAttackPoints < currentTrigger) {
      lastMyAttack = time;
      int numCreatures = 0;
      for (const Creature* c : control->allCreatures)
        if (!fightingCreatures.count(c) && !c->isDead()) {
          ++numCreatures;
          fightingCreatures.insert(c);
          if ((lastAttackPoints += c->getDifficultyPoints()) >= currentTrigger)
            break;
        }
      if (numCreatures > 0) {
        if (currentTrigger >= *triggerAmounts.rbegin() - 0.001)
          lastAttackLaunched = true;
      //  if (fightingCreatures.size() < control->allCreatures.size()) {
          /*        if (numCreatures <= 3) {
                    if (firstAttack)
                    messageBuffer.addMessage(MessageBuffer::important("The " + tribe->getName() + 
                    " of " + name + " have sent a small group to scout your dungeon. "
                    "It it advisable that they never return from this mission."));
                    else
                    messageBuffer.addMessage(MessageBuffer::important("The " + tribe->getName() + 
                    " of " + name + " are sending another small group of scouts. How cute is that?"));
                    } else*/
          messageBuffer.addMessage(MessageBuffer::important("The " + control->tribe->getName() + 
                " of " + control->name + " are attacking!"));
//        } else
  //        messageBuffer.addMessage(MessageBuffer::important("The " + control->tribe->getName() + 
    //            " of " + control->name + " have undertaken a final, desperate attack!"));
      }
    }
  }