allow some degree of control over human bots
This commit is contained in:
@@ -61,6 +61,35 @@ defaultLib["Entity"] = CreateStatic("Entity")
|
||||
defaultLib["Physics"] = CreateStatic("Physics")
|
||||
defaultLib["FireSource"] = CreateStatic("FireSource")
|
||||
|
||||
defaultLib["AIObjective"] = CreateStatic("AIObjective")
|
||||
defaultLib["AIObjectiveChargeBatteries"] = CreateStatic("AIObjectiveChargeBatteries")
|
||||
defaultLib["AIObjectiveCleanupItem"] = CreateStatic("AIObjectiveCleanupItem")
|
||||
defaultLib["AIObjectiveCleanupItems"] = CreateStatic("AIObjectiveCleanupItems")
|
||||
defaultLib["AIObjectiveCombat"] = CreateStatic("AIObjectiveCombat")
|
||||
defaultLib["AIObjectiveContainItem"] = CreateStatic("AIObjectiveContainItem")
|
||||
defaultLib["AIObjectiveDecontainItem"] = CreateStatic("AIObjectiveDecontainItem")
|
||||
defaultLib["AIObjectiveEscapeHandcuffs"] = CreateStatic("AIObjectiveEscapeHandcuffs")
|
||||
defaultLib["AIObjectiveExtinguishFire"] = CreateStatic("AIObjectiveExtinguishFire")
|
||||
defaultLib["AIObjectiveExtinguishFires"] = CreateStatic("AIObjectiveExtinguishFires")
|
||||
defaultLib["AIObjectiveFightIntruders"] = CreateStatic("AIObjectiveFightIntruders")
|
||||
defaultLib["AIObjectiveFindDivingGear"] = CreateStatic("AIObjectiveFindDivingGear")
|
||||
defaultLib["AIObjectiveFindSafety"] = CreateStatic("AIObjectiveFindSafety")
|
||||
defaultLib["AIObjectiveFixLeak"] = CreateStatic("AIObjectiveFixLeak")
|
||||
defaultLib["AIObjectiveFixLeaks"] = CreateStatic("AIObjectiveFixLeaks")
|
||||
defaultLib["AIObjectiveGetItem"] = CreateStatic("AIObjectiveGetItem")
|
||||
defaultLib["AIObjectiveGoTo"] = CreateStatic("AIObjectiveGoTo")
|
||||
defaultLib["AIObjectiveIdle"] = CreateStatic("AIObjectiveIdle")
|
||||
defaultLib["AIObjectiveOperateItem"] = CreateStatic("AIObjectiveOperateItem")
|
||||
defaultLib["AIObjectiveOperateItem"] = CreateStatic("AIObjectiveOperateItem")
|
||||
defaultLib["AIObjectivePumpWater"] = CreateStatic("AIObjectivePumpWater")
|
||||
defaultLib["AIObjectiveRepairItem"] = CreateStatic("AIObjectiveRepairItem")
|
||||
defaultLib["AIObjectiveRepairItems"] = CreateStatic("AIObjectiveRepairItems")
|
||||
defaultLib["AIObjectiveRescue"] = CreateStatic("AIObjectiveRescue")
|
||||
defaultLib["AIObjectiveRescueAll"] = CreateStatic("AIObjectiveRescueAll")
|
||||
defaultLib["AIObjectiveReturn"] = CreateStatic("AIObjectiveReturn")
|
||||
defaultLib["CombatMode"] = CreateStatic("AIObjectiveCombat+CombatMode")
|
||||
|
||||
|
||||
if SERVER then
|
||||
|
||||
elseif CLIENT then
|
||||
|
||||
@@ -115,6 +115,37 @@ RegisterBarotrauma("HumanAIController")
|
||||
RegisterBarotrauma("AICharacter")
|
||||
RegisterBarotrauma("AITarget")
|
||||
RegisterBarotrauma("AITargetMemory")
|
||||
RegisterBarotrauma("AIChatMessage")
|
||||
RegisterBarotrauma("AIObjectiveManager")
|
||||
RegisterBarotrauma("AITrigger")
|
||||
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjective"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveChargeBatteries"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveCleanupItem"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveCleanupItems"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveCombat"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveContainItem"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveDecontainItem"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveEscapeHandcuffs"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveExtinguishFire"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveExtinguishFires"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveFightIntruders"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveFindDivingGear"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveFindSafety"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveFixLeak"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveFixLeaks"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveGetItem"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveGoTo"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveIdle"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveOperateItem"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveOperateItem"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectivePumpWater"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveRepairItem"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveRepairItems"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveRescue"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveRescueAll"))
|
||||
AddCallMetaMember(RegisterBarotrauma("AIObjectiveReturn"))
|
||||
RegisterBarotrauma("AIObjectiveCombat+CombatMode")
|
||||
|
||||
RegisterBarotrauma("TalentPrefab")
|
||||
RegisterBarotrauma("TalentOption")
|
||||
|
||||
@@ -63,8 +63,17 @@ namespace Barotrauma
|
||||
CreateAutonomousObjectives();
|
||||
}
|
||||
|
||||
public void AddObjective(AIObjective objective)
|
||||
{
|
||||
AddObjective<AIObjective>(objective);
|
||||
}
|
||||
|
||||
public void AddObjective<T>(T objective) where T : AIObjective
|
||||
{
|
||||
var result = new LuaResult(GameMain.Lua.hook.Call("AI.AddObjective", this, objective));
|
||||
|
||||
if (result.Bool()) return;
|
||||
|
||||
if (objective == null)
|
||||
{
|
||||
#if DEBUG
|
||||
|
||||
Reference in New Issue
Block a user