Files
kicking-high/proto3/godot/ai/throw_weapon.gd
2020-04-13 12:45:25 +03:00

22 lines
789 B
GDScript

extends BTAction
class_name BTThrowWeapon
func tick(tick: Tick) -> int:
var npc = tick.actor
if npc.get_meta("agression") < 100.0:
return FAILED
var pattack = npc.get_meta("agression") / 1000.0
if pattack < randf():
return FAILED
npc.set_meta("weapon", false)
var dir = (global.player.global_transform.origin - npc.global_transform.origin).normalized()
var look = npc.global_transform.looking_at(global.player.global_transform.origin, Vector3(0, 1, 0))
npc.orientation.basis = npc.orientation.basis.slerp(look.basis, 3.0 * get_process_delta_time())
var v1 = Vector2(npc.orientation.basis[2].x, npc.orientation.basis[2].z).normalized()
var v2 = -Vector2(dir.x, dir.z).normalized()
if abs(v1.angle_to(v2)) < PI / 9.00:
npc.do_attack()
return OK
else:
return ERR_BUSY