coyote hunt
This commit is contained in:
Executable
+8
@@ -0,0 +1,8 @@
|
||||
extends Node
|
||||
|
||||
# Event Handler for Encountering Knowledge
|
||||
|
||||
# Learn incoming encountered knowledge
|
||||
func handle(new_content):
|
||||
print_debug("KnowledgeBase: encountered " + new_content[0])
|
||||
KnowledgeBase.learn(new_content)
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Events/knowledge/Encountered.gd" type="Script" id=1]
|
||||
|
||||
[node name="Encountered" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
extends Node
|
||||
|
||||
# Event Handler for Forgetting Knowledge
|
||||
|
||||
# Signals
|
||||
signal forgot
|
||||
|
||||
# Handle
|
||||
func handle(knowledge):
|
||||
if get_tree().get_nodes_in_group("player").size() > 0:
|
||||
get_tree().get_nodes_in_group("player")[0].think("Forgot: " + knowledge)
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Events/knowledge/Forgot.gd" type="Script" id=1]
|
||||
|
||||
[node name="Forgot" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
extends Node
|
||||
|
||||
# Event Handler for Learning Knowledge
|
||||
|
||||
# Signals
|
||||
signal learned
|
||||
|
||||
func bingo(knowledge):
|
||||
if knowledge in KnowledgeBase.bingo_knowledge:
|
||||
MessageBus.publish("bingo", self)
|
||||
|
||||
# Handle
|
||||
func handle(knowledge):
|
||||
if get_tree().get_nodes_in_group("player").size() > 0:
|
||||
get_tree().get_nodes_in_group("player")[0].think("Learned: " + knowledge)
|
||||
bingo(knowledge)
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Events/knowledge/Learned.gd" type="Script" id=1]
|
||||
|
||||
[node name="Learned" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
extends Node
|
||||
|
||||
# Event Handler for Encountering Knowledge
|
||||
|
||||
# Learn incoming encountered knowledge
|
||||
func handle(old_content):
|
||||
print_debug("KnowledgeBase: " + old_content)
|
||||
KnowledgeBase.forget(old_content)
|
||||
|
||||
# Ready
|
||||
func _ready():
|
||||
MessageBus.subscribe("lost", self)
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Events/knowledge/Lost.gd" type="Script" id=1]
|
||||
|
||||
[node name="Lost" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
@@ -0,0 +1,11 @@
|
||||
extends "res://events/moved/Moved.gd"
|
||||
|
||||
# Event Handler for Character Moving
|
||||
|
||||
func _arrived(character): # at next
|
||||
var next = character.get_next()
|
||||
return next && character.reached_next()
|
||||
|
||||
func _reached(character): # at current dot
|
||||
var cd = character.get_current_dot()
|
||||
return cd && character.reached_current_dot()
|
||||
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://events/moved/Char.gd" type="Script" id=1]
|
||||
|
||||
[node name="Moved" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
@@ -0,0 +1,51 @@
|
||||
extends Node
|
||||
|
||||
# Event Handler for Moving
|
||||
|
||||
# Variable
|
||||
var topic = "moved"
|
||||
var positions = []
|
||||
|
||||
func _arrived(_character):
|
||||
return false
|
||||
|
||||
# are positions the same?
|
||||
func compare_pos():
|
||||
var p1 = positions[0]
|
||||
for p in positions:
|
||||
if p != p1:
|
||||
return false # moving
|
||||
return true # not moving
|
||||
|
||||
func _reached(_character):
|
||||
return false
|
||||
|
||||
func track_pos(new_pos):
|
||||
positions.append(new_pos)
|
||||
if len(positions) > 50:
|
||||
positions.pop_front()
|
||||
|
||||
# Handle
|
||||
func handle(character):
|
||||
var current_pos = character.get_gpos()
|
||||
track_pos(current_pos)
|
||||
if _arrived(character):
|
||||
character.think("Moved/Arrived")
|
||||
character.emit_signal("arrived")
|
||||
return
|
||||
elif _reached(character):
|
||||
character.think("Moved/Reached Dot")
|
||||
character.emit_signal("reached")
|
||||
return
|
||||
elif compare_pos():
|
||||
character.think("Moved/Not Moving")
|
||||
character.emit_signal("not_moving")
|
||||
return
|
||||
#elif character.get_internal_velocity() != Vector2(0.0,0.0) and character.get_velocity() != character.get_internal_velocity():
|
||||
# var sdfoia = character.get_internal_velocity()
|
||||
# var posjk = character.get_velocity()
|
||||
# character.think("Moved/Wrong Directiaon")
|
||||
# character.emit_signal("wrong_direction")
|
||||
else:
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user