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["Physics"] = CreateStatic("Physics")
|
||||||
defaultLib["FireSource"] = CreateStatic("FireSource")
|
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
|
if SERVER then
|
||||||
|
|
||||||
elseif CLIENT then
|
elseif CLIENT then
|
||||||
|
|||||||
@@ -115,6 +115,37 @@ RegisterBarotrauma("HumanAIController")
|
|||||||
RegisterBarotrauma("AICharacter")
|
RegisterBarotrauma("AICharacter")
|
||||||
RegisterBarotrauma("AITarget")
|
RegisterBarotrauma("AITarget")
|
||||||
RegisterBarotrauma("AITargetMemory")
|
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("TalentPrefab")
|
||||||
RegisterBarotrauma("TalentOption")
|
RegisterBarotrauma("TalentOption")
|
||||||
|
|||||||
+9
@@ -63,8 +63,17 @@ namespace Barotrauma
|
|||||||
CreateAutonomousObjectives();
|
CreateAutonomousObjectives();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddObjective(AIObjective objective)
|
||||||
|
{
|
||||||
|
AddObjective<AIObjective>(objective);
|
||||||
|
}
|
||||||
|
|
||||||
public void AddObjective<T>(T objective) where T : AIObjective
|
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 (objective == null)
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
|||||||
Reference in New Issue
Block a user