コード例 #1
0
	bool Weapon::hasRangedAttack() const {
		for(uint n = 0; n < count<AttackMode>(); n++) {
			AttackMode mode = (AttackMode)n;
			if(isRanged(mode) && proto().attack_modes & toFlags(mode))
				return true;
		}
		return false;
	}
コード例 #2
0
void CAutomatonController::Move()
{
    float currentDistance = distanceSquared(PAutomaton->loc.p, PTarget->loc.p);
    if (isRanged() && (currentDistance > 225) || (PAutomaton->health.mp < 8 && PAutomaton->health.maxmp > 8))
    {
        PAutomaton->m_Behaviour &= ~BEHAVIOUR_STANDBACK;
    }
    CPetController::Move();
}
コード例 #3
0
bool CAutomatonController::Disengage()
{
    PTarget = nullptr;
    if (isRanged())
    {
        PAutomaton->m_Behaviour |= BEHAVIOUR_STANDBACK;
    }
    return CMobController::Disengage();
}
コード例 #4
0
CAutomatonController::CAutomatonController(CAutomatonEntity* PPet) : CPetController(PPet),
    PAutomaton(PPet)
{
    PPet->setInitialBurden();
    setCooldowns();
    if (isRanged())
    {
        PAutomaton->m_Behaviour |= BEHAVIOUR_STANDBACK;
    }
}
コード例 #5
0
void AstBasicDType::dump(ostream& str) {
    this->AstNodeDType::dump(str);
    str<<" kwd="<<keyword().ascii();
    if (isRanged() && !rangep()) str<<" range=["<<left()<<":"<<right()<<"]";
}
コード例 #6
0
	float Weapon::range(AttackMode mode) const {
		return isRanged(mode)? proto().ranged_range : proto().melee_range;
	}
コード例 #7
0
ファイル: V3AstNodes.cpp プロジェクト: torc-isi/torc
void AstBasicDType::dump(ostream& str) {
    this->AstNodeDType::dump(str);
    str<<" kwd="<<keyword().ascii();
    if (isRanged() && !rangep()) str<<" range=["<<msb()<<":"<<lsb()<<"]";
    if (implicit()) str<<" [IMPLICIT]";
}