Beispiel #1
0
void Monster::updateFollowing() {
	if (attackedCreature != nullptr) {
		startFollowing(attackedCreature);
	}
	else if (hasMaster()) {
		startFollowing(_master.get());
	}
	else {
		stopFollowing();
	}
}
Beispiel #2
0
    void MapControl::followGeometry(const Geometry* geom) const
    {
        if ( geom == 0 )
        {
            return;
        }

        //ensures only one signal is ever connected
        stopFollowing(geom);

        connect(geom, SIGNAL(positionChanged(Geometry*)),
                this, SLOT(positionChanged(Geometry*)));
    }
Beispiel #3
0
void Monster::setMaster(const CreatureP& master) {
	assert(master != this);

	if (master == _master) {
		return;
	}

	auto previousMaster = _master;
	_master = master;

	setDropLoot(LOOT_DROP_NONE);
	setLossSkill(false);
	removeFromRaid();
	removeFromSpawn();
	stopFollowing();
	target(nullptr);

	notifyMasterChanged(previousMaster);
}