public BugMind(Scripting.IMover mover, Scripting.ILocator locator, World.NavMeshes.NavMesh navMesh, int bugId, List <Scripting.Instructions.Instruction> behavior) { this.bugId = bugId; this.behavior = behavior; aiType = BugAI.AIType.Bug1Behavior; instructionCounter = 0; interpreter = new Scripting.BugInterpreter(mover, locator, navMesh, bugId); }
public BugInterpreter(Scripting.IMover mover, Scripting.ILocator locator, World.NavMeshes.NavMesh navMesh, int bugId) { this.bugId = bugId; this.mover = mover; this.locator = locator; this.navMesh = navMesh; totalIdlingTime = 0; maxIdlingTime = 0; idling = false; dictionary = new Dictionary <Instructions.OpCodes, Action <int> >(); dictionary.Add(Instructions.OpCodes.MoveTo, MoveTo); dictionary.Add(Instructions.OpCodes.Bite, Bite); dictionary.Add(Instructions.OpCodes.TryNorth, TryNorth); dictionary.Add(Instructions.OpCodes.TrySouth, TrySouth); dictionary.Add(Instructions.OpCodes.TryWest, TryWest); dictionary.Add(Instructions.OpCodes.TryEast, TryEast); dictionary.Add(Instructions.OpCodes.Idle, Idle); }
public BugAI(Scripting.IMover mover, World.NavMeshes.NavMesh navMesh, Scripting.ILocator locator) { this.mover = mover; this.navMesh = navMesh; this.locator = locator; bugs = new List <BugMind>(); bugType1Behavior = new List <Scripting.Instructions.Instruction> { new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), }; bugType2Behavior = new List <Scripting.Instructions.Instruction> { new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryEast, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryWest, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), }; bugType3Behavior = new List <Scripting.Instructions.Instruction> { new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TrySouth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.TryNorth, 0), new Scripting.Instructions.Instruction(Scripting.Instructions.OpCodes.Idle, 800), }; }