coyote hunt

master
chimchooree 1 year ago
commit 25e72421c3

@ -0,0 +1,3 @@
source_md5="11f423bdd4ed2639a5486bf4e591b1fe"
dest_md5="f3a457935bec02fdf35193bebf7f6d82"

@ -0,0 +1,3 @@
source_md5="7749d705a63fa1cb5ff94a279090d0fb"
dest_md5="2a4254ee95e898914e2ac9278cfc4a07"

@ -0,0 +1,3 @@
source_md5="c09637a85b57ae4a57a7990047e09dc6"
dest_md5="f7154fde0c16cdb23fc7fe89c34106f3"

@ -0,0 +1,3 @@
source_md5="4a2877b46221d101fe9dc4afd434f8b3"
dest_md5="407ca6c5f931f4f366bfccac1f865f31"

@ -0,0 +1,3 @@
source_md5="f7b42e3798f5fbc6ffbc08d4bed7b885"
dest_md5="2ac2f63d7f2e21bbf94dfb63cf39dd46"

@ -0,0 +1,3 @@
source_md5="bbb0258173637aceab3089ce20a81e6d"
dest_md5="0a54533b694fbbf9e000487ab968844a"

@ -0,0 +1,3 @@
source_md5="f6825a9c0fadbafe6af3d4728d62f7fb"
dest_md5="e463d96fe33669c1c036cbdb64ce3e90"

@ -0,0 +1,3 @@
source_md5="96dbe5e3b91fa05565170ca1d72df7e5"
dest_md5="8cd30cae90ca9d60d119b903c7f6a767"

@ -0,0 +1,3 @@
source_md5="e2668f31986a11c869d67282c21ac506"
dest_md5="983dca7cc8e813597ac8d2a1585c006b"

@ -0,0 +1,3 @@
source_md5="0c8f200205823fbb0552de1abe872893"
dest_md5="959514eae00c06ae8c6300722fbaffd9"

@ -0,0 +1,3 @@
source_md5="363a4fffe543eb01645f3c16ac0ce1b7"
dest_md5="4ae74020d6a01b7c04a95ae618bcaac9"

@ -0,0 +1,3 @@
source_md5="f90eb2a42a4830f472ae6e7faaed8cd8"
dest_md5="c911b27c9e9aaef63b52f2cf109fc53e"

@ -0,0 +1,3 @@
source_md5="bbb0258173637aceab3089ce20a81e6d"
dest_md5="0a54533b694fbbf9e000487ab968844a"

@ -0,0 +1,3 @@
source_md5="80046739790bbb329462e6c9302446e5"
dest_md5="cdb58b58d6806b3fd27e390c0044bf57"

@ -0,0 +1,3 @@
source_md5="47313fa4c47a9963fddd764e1ec6e4a8"
dest_md5="2ded9e7f9060e2b530aab678b135fc5b"

@ -0,0 +1,3 @@
source_md5="0c8f200205823fbb0552de1abe872893"
dest_md5="959514eae00c06ae8c6300722fbaffd9"

@ -0,0 +1,3 @@
source_md5="f6825a9c0fadbafe6af3d4728d62f7fb"
dest_md5="e463d96fe33669c1c036cbdb64ce3e90"

@ -0,0 +1,3 @@
source_md5="96dbe5e3b91fa05565170ca1d72df7e5"
dest_md5="8cd30cae90ca9d60d119b903c7f6a767"

@ -0,0 +1,3 @@
source_md5="74ed76981e48b5f246d308f7df03d1ed"
dest_md5="f6667eb9247d96820fe0561f089f7ecf"

@ -0,0 +1,3 @@
source_md5="e2668f31986a11c869d67282c21ac506"
dest_md5="983dca7cc8e813597ac8d2a1585c006b"

@ -0,0 +1,3 @@
source_md5="0875168065f5634b350848e92d201af9"
dest_md5="30c43c641a7e3c098959489f3153641f"

@ -0,0 +1,3 @@
source_md5="7749d705a63fa1cb5ff94a279090d0fb"
dest_md5="2a4254ee95e898914e2ac9278cfc4a07"

@ -0,0 +1,3 @@
source_md5="c09637a85b57ae4a57a7990047e09dc6"
dest_md5="f7154fde0c16cdb23fc7fe89c34106f3"

@ -0,0 +1,190 @@
[gd_scene load_steps=29 format=2]
[ext_resource path="res://res/level/neighbor.png" type="Texture" id=1]
[ext_resource path="res://res/character/girl.png" type="Texture" id=2]
[ext_resource path="res://res/character/randos.png" type="Texture" id=3]
[ext_resource path="res://res/character/wolf.png" type="Texture" id=4]
[ext_resource path="res://entity/KinematicBody2D.gd" type="Script" id=5]
[ext_resource path="res://entity/Girl.gd" type="Script" id=6]
[sub_resource type="AtlasTexture" id=1]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 99, 0, 33, 50 )
[sub_resource type="AtlasTexture" id=2]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 99, 50, 33, 50 )
[sub_resource type="AtlasTexture" id=3]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 99, 100, 33, 50 )
[sub_resource type="AtlasTexture" id=4]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 99, 150, 33, 50 )
[sub_resource type="AtlasTexture" id=5]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 99, 200, 33, 50 )
[sub_resource type="AtlasTexture" id=6]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 33, 0, 33, 50 )
[sub_resource type="AtlasTexture" id=7]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 33, 50, 33, 50 )
[sub_resource type="AtlasTexture" id=8]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 33, 100, 33, 50 )
[sub_resource type="AtlasTexture" id=9]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 33, 150, 33, 50 )
[sub_resource type="AtlasTexture" id=10]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 33, 200, 33, 50 )
[sub_resource type="AtlasTexture" id=11]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 66, 0, 33, 50 )
[sub_resource type="AtlasTexture" id=12]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 66, 50, 33, 50 )
[sub_resource type="AtlasTexture" id=13]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 66, 100, 33, 50 )
[sub_resource type="AtlasTexture" id=14]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 66, 150, 33, 50 )
[sub_resource type="AtlasTexture" id=15]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 66, 200, 33, 50 )
[sub_resource type="AtlasTexture" id=16]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 0, 0, 33, 50 )
[sub_resource type="AtlasTexture" id=17]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 0, 50, 33, 50 )
[sub_resource type="AtlasTexture" id=18]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 0, 100, 33, 50 )
[sub_resource type="AtlasTexture" id=19]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 0, 150, 33, 50 )
[sub_resource type="AtlasTexture" id=20]
flags = 4
atlas = ExtResource( 2 )
region = Rect2( 0, 200, 33, 50 )
[sub_resource type="SpriteFrames" id=21]
animations = [ {
"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ) ],
"loop": true,
"name": "WalkRight",
"speed": 5.0
}, {
"frames": [ SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ],
"loop": true,
"name": "WalkLeft",
"speed": 5.0
}, {
"frames": [ SubResource( 11 ), SubResource( 12 ), SubResource( 13 ), SubResource( 14 ), SubResource( 15 ) ],
"loop": true,
"name": "WalkUp",
"speed": 5.0
}, {
"frames": [ SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ) ],
"loop": true,
"name": "WalkDown",
"speed": 5.0
} ]
[sub_resource type="CapsuleShape2D" id=22]
radius = 7.49152
[node name="Node" type="Node"]
[node name="World" type="Node2D" parent="."]
[node name="Level" type="Sprite" parent="World"]
texture = ExtResource( 1 )
__meta__ = {
"_edit_lock_": true
}
[node name="Enter" type="Position2D" parent="World"]
position = Vector2( 208.579, 63.3655 )
[node name="Girl" type="Node" parent="World/Enter"]
script = ExtResource( 6 )
[node name="KinematicBody2D" type="KinematicBody2D" parent="World/Enter/Girl"]
position = Vector2( 208.579, 63.3655 )
script = ExtResource( 5 )
[node name="AnimatedSprite" type="AnimatedSprite" parent="World/Enter/Girl/KinematicBody2D"]
frames = SubResource( 21 )
animation = "WalkDown"
[node name="CollisionShape2D" type="CollisionShape2D" parent="World/Enter/Girl/KinematicBody2D"]
position = Vector2( 1, -2 )
shape = SubResource( 22 )
[node name="SpawnNPC" type="Position2D" parent="World"]
__meta__ = {
"_edit_lock_": true
}
[node name="NPC" type="Sprite" parent="World/SpawnNPC"]
texture = ExtResource( 3 )
region_enabled = true
region_rect = Rect2( 7, 4, 34, 38 )
region_filter_clip = true
__meta__ = {
"_edit_lock_": true
}
[node name="SpawnEnemy" type="Position2D" parent="World"]
__meta__ = {
"_edit_lock_": true
}
[node name="Coyote" type="Sprite" parent="World/SpawnEnemy"]
texture = ExtResource( 4 )
region_enabled = true
region_rect = Rect2( 0, 3, 38, 39 )
region_filter_clip = true
__meta__ = {
"_edit_lock_": true
}

@ -0,0 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

@ -0,0 +1,3 @@
extends Node
# Variables

@ -0,0 +1,74 @@
extends KinematicBody2D
# Variables
## Speed
export (int) var base_speed = 200 setget set_base_speed, get_base_speed # Character's speed (scalar)
export (int) var speed setget , get_speed # Character's speed (scalar)
var speed_mod = 1
var speed_ceil = 5
var speed_floor = .01
## Velocity
var can_move = true setget set_can_move, get_can_move
export (Vector2) var velocity = Vector2(0,0) setget set_velocity, get_velocity # Character's directional velocity (vector)
var internal_velocity = Vector2(0,0) setget set_internal_velocity, get_internal_velocity
var external_velocity = Vector2(0,0) setget set_external_velocity, get_external_velocity
var velocity_mod = 1
# Setters + Getters
func set_base_speed(new_speed):
base_speed = new_speed
func get_base_speed():
return base_speed
func set_can_move(new_bool):
can_move = new_bool
func get_can_move():
return can_move
func set_external_velocity(new_velocity):
external_velocity = new_velocity
func get_external_velocity():
return external_velocity
func set_internal_velocity(new_velocity):
internal_velocity = new_velocity
func get_internal_velocity():
if not get_can_move():
return Vector2(0.0,0.0)
return internal_velocity
func get_speed():
if !get_can_move():
return 0
else:
return base_speed * get_speed_mod()
func get_speed_mod():
if speed_mod < speed_floor:
return speed_floor
elif speed_mod > speed_ceil:
return speed_ceil
else:
return speed_mod
func set_velocity(new_velocity):
velocity = new_velocity
func get_velocity():
return get_internal_velocity().normalized()
func get_velocity_angle():
return get_velocity().angle()
func get_velocity_length():
return get_velocity().length()
func get_user():
return get_parent()
# Logic
func _process(delta):
var v = get_velocity() * get_speed() * delta * KnowledgeBase.logic_time
print(move_and_collide(v))
if v != Vector2(0,0):
MessageBus.publish("moved", get_user())
#func _on_input_event(viewport, event, shape_idx):
# get_physics_body_node()._on_input_event(viewport, event, shape_idx)
func _setup():
set_process(true)
func _ready():
set_process(false)

@ -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)

@ -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 )

@ -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)

@ -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 )

@ -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)

@ -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 )

@ -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)

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

@ -0,0 +1,64 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=4
_global_script_classes=[ ]
_global_script_class_icons={
}
[application]
config/name="CoyoteHunt"
run/main_scene="res://Main.tscn"
config/icon="res://icon.png"
[autoload]
KnowledgeBase="*res://singletons/KnowledgeBase.gd"
MessageBus="*res://singletons/MessageBus.gd"
[display]
window/size/width=800
[input]
ui_left={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null)
]
}
ui_right={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)
]
}
ui_up={
"deadzone": 0.5,
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null)
]
}
ui_down={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null)
]
}
[rendering]
environment/default_environment="res://default_env.tres"

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/character/girl.png"
dest_files=[ "res://.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/character/grillman.png"
dest_files=[ "res://.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/character/randos.png"
dest_files=[ "res://.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/character/slime.png"
dest_files=[ "res://.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/character/wolf.png"
dest_files=[ "res://.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/level/graveyard.png"
dest_files=[ "res://.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/lake.png-05c24eba17f93b94b17afad1068b707b.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/level/lake.png"
dest_files=[ "res://.import/lake.png-05c24eba17f93b94b17afad1068b707b.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/library.png-7570102310ea890595efa260efa49a5b.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/level/library.png"
dest_files=[ "res://.import/library.png-7570102310ea890595efa260efa49a5b.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/level/neighbor.png"
dest_files=[ "res://.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/sewers.png-c8c581ec69472520d44800f676cfa99e.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/level/sewers.png"
dest_files=[ "res://.import/sewers.png-c8c581ec69472520d44800f676cfa99e.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://res/level/warehouse.png"
dest_files=[ "res://.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

@ -0,0 +1,107 @@
extends Node
# Variables
## Other Data
var logic_time = 1
var draw_time = 1
## Handlers
#var encountered_handler = load("res://events/knowledge/Encountered.tscn").instance()
#var lost_handler = load("res://events/knowledge/Lost.tscn").instance()
#var learned_handler = load("res://events/knowledge/Learned.tscn").instance()
#var forgot_handler = load("res://events/knowledge/Forgot.tscn").instance()
## Keys
const bingo_knowledge = []
const BINGO_IT4_KEY = "smb001"
const BINGO_LVL_KEY = "ml1000"
const CHARACTER_CREATION_KEY = "smc001"
const ACT_GROUP = ['act100','act200','act001','act002'] # Plastic Tub
const IT3_GROUP = ['it3000','it3001','it3002','it3003','it3004'] # Three-Leaf Clover
const IT4_GROUP = ['it4000','it4001','it4002','it4003','it4004'] # Four-Leaf Clover
const CCB_GROUP = ['ccb000','ccb001','ccb002','ccb003'] # Bad Cat
const CCN_GROUP = ['ccn000','ccn001','ccn002','ccn003'] # Neighborhood Cat
const CMC_GROUP = ['cmc000','cmc001','cmc002','cmc003'] # Chloe
const CMN_GROUP = ['cmn000','cmn001','cmn002','cmn003'] # Night
## Knowledge Base
var knowledge = {
# code: ["title", "desc", ["tags"], "source", "learned?"]
'a00000': ['teacti', 'teacti', ["term"], "", false], # activator
'ac0000': ['tecont', 'tecont', ["term"], "", false], # container
'act100': ['actubb', 'deactubb', ["activator"], "", false], # blue plastic tub
'act200': ['actubg', 'deactubg', ["activator"], "", false], # green plastic tub
'act001': ['actubb', 'deactubb', ["activator","category"], "", false], # plastic tub category
'act002': ['actubb', 'deactubb', ["activator","subcategory"], "", false], # plastic tub subcategory
'c00000': ['techar', 'techar', ["term"], "", false], # character
'cc0000': ['facata', 'facata', ["faction"], "", false], # cat
'ccn000': ['chneig', 'dechneig', ["character"], "", false], # neighborhood cat
'ccn001': ['tecate', 'techar', ["ccb000","category"], "", true], # neighborhood cat category
'ccn002': ['tefact', 'facata', ["ccb000","faction"], "", false], # neighborhood cat faction
'ccn003': ['tehost', 'teally', ["ccb000","hostility"], "", false], # neighborhood cat hostility
'ccb000': ['chbadc', 'dechbadc', ["character"], "", false], # bad cat
'ccb001': ['tecate', 'techar', ["ccb000","category"], "", true], # bad cat category
'ccb002': ['tefact', 'facata', ["ccb000","faction"], "", false], # bad cat faction
'ccb003': ['tehost', 'tefoea', ["ccb000","hostility"], "", false], # bad cat hostility
'ch0000': ['fahuma', 'fahuma', ["faction"], "", false], # human
'cmc000': ['chchlo', 'dechchlo', ["character"], "", false], # chloe
'cmc001': ['tecate', 'techar', ["cmc000","category"], "", true], # chloe category
'cmc002': ['tefact', 'fashma', ["cmc000","faction"], "", false], # chloe faction
'cmc003': ['tehost', 'teally', ["cmc000","hostility"], "", false], # chloe hostility
'cmn000': ['chnigh', 'dechnigh', ["character"], "", false], # night
'cmn001': ['tecate', 'techar', ["cmc000","category"], "", true], # night category
'cmn002': ['tefact', 'tedoct', ["cmc000","faction"], "", false], # night faction
'cmn003': ['tehost', 'teally', ["cmc000","hostility"], "", false], # night hostility
'cmp001': ['chheli', 'dechheli', ["character"], "", false], # player
'i00000': ['teitem', 'teitem', ["term"], "", false], # item
'it0000': ['ictrin', 'ictrin', ["item_category"], "", false], # item
'it3000': ['it3lea', 'deit3lea', ["item"], "", false], # three-leaf clover
'it3001': ['tecate', 'caitem', ["it3000","category"], "", true], # three-leaf clover category
'it3002': ['tesubc', 'ictrin', ["it3000","subcategory"], "", false], # three-leaf clover subcategory
'it3003': ['terari', 'irmund', ["it3000","rarity"], "", false], # three-leaf clover rarity
'it3004': ['tevalu', 'tevalu', ["it3000","value"], "", false], # three-leaf clover value
'it4000': ['it4lea', 'deit4lea', ["item"], "", false], # four-leaf clover
'it4001': ['tecate', 'caitem', ["it4000","category"], "", true], # four-leaf clover category
'it4002': ['tesubc', 'ictrin', ["it4000","subcategory"], "", false], # four-leaf clover subcategory
'it4003': ['terari', 'irrare', ["it4000","rarity"], "", false], # four-leaf clover rarity
'it4004': ['tevalu', 'tevalu', ["it4000","value"], "", false], # four-leaf clover value
'ml0000': ['techlv', 'techlv', ["term"], "", true], # level
'ml1000': ['techle', 'techle', ["techlv"], "", false], # level 1
'sm0000': ['wogati', 'wogati', ["term"], "", false], # main story
'smb000': ['evmibi', 'evmibi', ['sm0000'], "", false], # bingo
'smb001': ['it4lea', 'deit4lea', ['smb001'], "", false], # bingo - four-leaf clover pickup
'smc000': ['evchcr', 'evchcr', ["sm0000"], "", false], # character creation
'smc001': ['evchcr', 'evchcr', ["smc000"], "", false] # character created
}
func learn(new_content):
knowledge[new_content[0]][3] = new_content[1] # set source
knowledge[new_content[0]][4] = true # set knowledge as learned
MessageBus.publish("learned", new_content[0]) # reap benefits
func forget(old_content):
print_debug("KnowledgeBase: Forgetting " + old_content)
knowledge[old_content][4] = false # set knowledge as learned
MessageBus.publish("forgot", old_content) # reap benefits
func do_know(key):
#print_debug(key + " is " + str(knowledge[key][4]))
return knowledge[key][4]
func has_tag(key,tag):
return tag in knowledge[key][2]
# Ready
func _ready():
return
# add_child(learned_handler)
# add_child(forgot_handler)
# add_child(encountered_handler)
# MessageBus.subscribe("learned", learned_handler)
# MessageBus.subscribe("forgot", lost_handler)
# MessageBus.subscribe("encountered", encountered_handler)
# Serialize
func serialize():
return knowledge
# Deserialize
func deserialize(dict):
knowledge = dict

@ -0,0 +1,82 @@
extends Node
# Message Bus
# Signals
#signal published()
# Variables
#var Mercur = load("res://entity/Mercur/Mercur.tscn").instance() # mail god
var current_ref_id = -1
var topicDict = {}
var approached_topic = "approached"
#var approached_handler = load("res://Events/approached/Approach.tscn").instance()
var died_topic = "died"
#var died_handler = load("res://Events/died/Died.tscn").instance()
var duration = "duration"
var earned_xp_topic = "xp_earned"
#var earned_xp_handler = load("res://Events/xp_changed/EarnedXP.tscn").instance()
var equipped_skill_topic = "skill_equipped"
#var equipped_skill_handler = load("res://Events/skill_equipped/EquipSkill.tscn").instance()
var gained_level_topic = "level_gained"
#var gained_level_handler = load("res://Events/xp_changed/GainLevel.tscn").instance()
var interacted_topic = "interacted"
#var interacted_handler = load("res://Events/character_interacted/Interact.tscn").instance()
var item_picked_up_topic = "item_picked_up"
#var learned_item_handler = load("res://Events/item_picked_up/LearnItem/LearnItem.tscn").instance()
var learned_skill_topic = "skill_learned"
#var learned_skill_handler = load("res://Events/skill_learned/LearnSkill.tscn").instance()
var moved_handler = load("res://events/moved/Char.tscn").instance()
var moved_topic = "moved"
func designate_ref_id():
current_ref_id += 1
return current_ref_id
# Take data + hand off to Event Handlers subscribed to event
func publish(topic, data):
if !topicDict.has(topic):
# print_debug("publish - unknown topic: " + topic)
return
for handler in topicDict[topic]:
handler.handle(data)
# Handler begins listening for topic
func subscribe(topic, handler):
if !topicDict.has(topic):
# print_debug("subscribe - new topic: " + topic)
topicDict[topic] = []
#return
topicDict[topic].append(handler)
handler.connect("tree_exited", self, "_on_handler_tree_exited", [topic, handler])
# Handler no longer listens for topic
func unsubscribe(topic, handler):
if !topicDict.has(topic):
# print_debug("Cannot unsubscribe handler that does not exist")
return
topicDict[topic].erase(handler)
func _on_handler_tree_exited(topic, handler):
unsubscribe(topic, handler)
# if this character exits tree
func _on_tree_exited():
#unsubscribe(died_topic, died_handler)
#unsubscribe(earned_xp_topic, earned_xp_handler)
#unsubscribe(gained_level_topic, gained_level_handler)
#subscribe(gained_level_topic, gained_level_handler)
#unsubscribe(item_picked_up_topic, learned_item_handler)
#unsubscribe(learned_skill_topic, learned_skill_handler)
unsubscribe(moved_topic, moved_handler)
func _ready():
#subscribe(died_topic, died_handler)
#subscribe(earned_xp_topic, earned_xp_handler)
#subscribe(gained_level_topic, gained_level_handler)
#subscribe(interacted_topic, interacted_handler)
#subscribe(item_picked_up_topic, learned_item_handler)
#subscribe(learned_skill_topic, learned_skill_handler)
subscribe(moved_topic, moved_handler)
# connect("tree_exited", self, "_on_tree_exited")
Loading…
Cancel
Save