constructor(owner: CDOTA_BaseNPC) {
this.owner = owner
this.fsm = new FiniteStateMachine<TestState>(TestState.Idle)
this.owner.SetContextThink("AI_THINK", () => {
return this.tree.tick()
}, 0)
this.tree = new BehaviorTreeBuilder()
.selector()
.action(() => {
return this.Attack()
})
.action(() => {
return this.MoveTo()
})
.end()
.build()
}
function TestNPC.constructor(self,owner)
self.owner=owner
self.fsm=FiniteStateMachine.new(true,TestState.Idle)
self.owner.SetContextThink(self.owner,"AI_THINK",function()
return self.tree.tick(self.tree)
end
,0)
self.tree=BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
).end(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
)).build(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
).end(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)).action(BehaviorTreeBuilder.new(true).selector(BehaviorTreeBuilder.new(true)),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
)))
end
let builder = new BehaviorTreeBuilder()
this.tree = builder
.selector()
.action(() => {
return this.Attack()
})
.action(() => {
return this.MoveTo()
})
.end()
.build()
function TestNPC.constructor(self,owner)
self.owner=owner
self.fsm=FiniteStateMachine.new(true,TestState.Idle)
self.owner.SetContextThink(self.owner,"AI_THINK",function()
return self.tree.tick(self.tree)
end
,0)
local builder = BehaviorTreeBuilder.new(true)
self.tree=builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
).action(builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
).end(builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
).action(builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
)).build(builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
).action(builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
).end(builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
).action(builder.selector(builder).action(builder.selector(builder),function()
return self.Attack(self)
end
),function()
return self.MoveTo(self)
end
)))
end