1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
/**
AI helper functions: Clonk
Contains functions that are related to the clonk.
@author Sven2, Maikel
*/
// Selects an item the clonk is about to use.
public func SelectItem(effect fx, object item)
{
if (!item)
return;
if (item->Contained() != fx.Target)
return;
fx.Target->SetHandItemPos(0, fx.Target->GetItemPos(item));
}
public func CancelAiming(effect fx)
{
if (fx.aim_weapon)
{
fx.aim_weapon->~ControlUseCancel(fx.Target);
fx.aim_weapon = nil;
}
else
{
// Also cancel aiming done outside AI control.
fx.Target->~CancelAiming();
}
return true;
}
public func CheckHandsAction(effect fx)
{
// Can use hands?
if (fx.Target->~HasHandAction())
return true;
// Can't throw: Is it because e.g. we're scaling?
if (!fx.Target->HasActionProcedure())
{
this->ExecuteStand(fx);
return false;
}
// Probably hands busy. Just wait.
return false;
}
|