It's Cow Game! Version 2.04!
This commit is contained in:
commit
a9e1ed9ddd
3148 changed files with 95332 additions and 0 deletions
27
NPCs/Beach/Seal/Seal.dialogue
Normal file
27
NPCs/Beach/Seal/Seal.dialogue
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
~ start
|
||||
|
||||
if not get_save_value("ambiQuestStarted", false):
|
||||
Bradrek: This sucks.
|
||||
Bradrek: I'm the best I deserve the best.
|
||||
Bradrek: But I don't even have a ball.
|
||||
Bradrek: I can't wait until everything comes to me and I have what I deserve.
|
||||
=> END
|
||||
|
||||
if not get_save_value("sealBallRetrieved", false):
|
||||
Bradrek: I still don't have a ball, which is what I deserve.
|
||||
Bradrek: Because I'm the best.
|
||||
Bradrek: But for now I'm holding onto this note, it's a pretty cool note.
|
||||
=> END
|
||||
|
||||
if not DialogueBoxManager.currentSpeaker.note_check():
|
||||
Bradrek: Ha ha! I finally got a ball, like I deserve.
|
||||
Bradrek: It just came to me, I didn't have to work for it at all.
|
||||
Bradrek: That's because I'm the best and I deserve this ball.
|
||||
Bradrek: Here you can have this note, it's not actually that cool.
|
||||
do DialogueBoxManager.currentSpeaker.give_note()
|
||||
=> END
|
||||
|
||||
Bradrek: This ball is the best, it came to me because I'm the best.
|
||||
Bradrek: If any less best balls come to me I'll toss them to you to take care of.
|
||||
|
||||
=> END
|
||||
15
NPCs/Beach/Seal/Seal.dialogue.import
Normal file
15
NPCs/Beach/Seal/Seal.dialogue.import
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="dialogue_manager_compiler_11"
|
||||
type="Resource"
|
||||
uid="uid://dg5u5a27gfivq"
|
||||
path="res://.godot/imported/Seal.dialogue-8ee0eecb2071ae41685076f4969dbc60.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://NPCs/Beach/Seal/Seal.dialogue"
|
||||
dest_files=["res://.godot/imported/Seal.dialogue-8ee0eecb2071ae41685076f4969dbc60.tres"]
|
||||
|
||||
[params]
|
||||
|
||||
defaults=true
|
||||
57
NPCs/Beach/Seal/Seal.gd
Normal file
57
NPCs/Beach/Seal/Seal.gd
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
extends NPC
|
||||
|
||||
var returnPhrases = ["Mine's better!", "You can have this one.", "This one's yours."]
|
||||
var returnPhraseIndex = 0
|
||||
|
||||
func _ready():
|
||||
dialogueResource = load("res://NPCs/Beach/Seal/Seal.dialogue")
|
||||
state_check()
|
||||
|
||||
func note_check():
|
||||
if InventoryManager.get_item_count_by_name("Basket Plan 2", "keyItems") > 0:
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
func give_note():
|
||||
var noteItem = preload("res://Items/Paper/BasketPlan2.gd").new()
|
||||
InventoryManager.add_item_to_inventory(noteItem, 1, "keyItems")
|
||||
MessageManager.item_popup(noteItem.duplicate())
|
||||
|
||||
state_check()
|
||||
|
||||
func state_check():
|
||||
if SaveManager.get_save_value("sealBallRetrieved", false):
|
||||
$SealBall.visible = true
|
||||
else:
|
||||
$SealBall.visible = false
|
||||
|
||||
if SaveManager.get_save_value("ambiQuestStarted", false):
|
||||
if InventoryManager.get_item_count_by_name("Basket Plan 2", "keyItems") > 0:
|
||||
$Sprite.frame = 0
|
||||
else:
|
||||
$Sprite.frame = 1
|
||||
else:
|
||||
$Sprite.frame = 0
|
||||
|
||||
func ball_caught():
|
||||
if !SaveManager.get_save_value("sealBallRetrieved", false):
|
||||
SaveManager.set_save_value("sealBallRetrieved", true)
|
||||
MessageManager.addMessage("Finally!", self, "Bradrek", Color.YELLOW)
|
||||
get_tree().get_root().get_node("MainGame/PuzzleCompleteAudio").play()
|
||||
else:
|
||||
MessageManager.addMessage(returnPhrases[returnPhraseIndex], self, "Bradrek", Color.YELLOW)
|
||||
returnPhraseIndex += 1
|
||||
if returnPhraseIndex >= returnPhrases.size():
|
||||
returnPhraseIndex = 0
|
||||
|
||||
var ballItem = preload("res://Items/Toys/Beach/Ball.gd").new()
|
||||
InventoryManager.add_item_to_inventory(ballItem)
|
||||
MessageManager.item_popup(ballItem.duplicate())
|
||||
|
||||
state_check()
|
||||
|
||||
func _on_ball_catch_area_body_entered(body):
|
||||
if body is Ball:
|
||||
body.queue_free()
|
||||
ball_caught()
|
||||
BIN
NPCs/Beach/Seal/Seal.png
Normal file
BIN
NPCs/Beach/Seal/Seal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1 KiB |
34
NPCs/Beach/Seal/Seal.png.import
Normal file
34
NPCs/Beach/Seal/Seal.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dklkoqcx0qhf1"
|
||||
path="res://.godot/imported/Seal.png-01ea9e2dad889750c597fb55bcf5c259.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://NPCs/Beach/Seal/Seal.png"
|
||||
dest_files=["res://.godot/imported/Seal.png-01ea9e2dad889750c597fb55bcf5c259.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
72
NPCs/Beach/Seal/Seal.tscn
Normal file
72
NPCs/Beach/Seal/Seal.tscn
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://cn0rlu1x4kakc"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_evrv5"]
|
||||
[ext_resource type="Script" path="res://NPCs/Beach/Seal/Seal.gd" id="2_sblbo"]
|
||||
[ext_resource type="Texture2D" uid="uid://dklkoqcx0qhf1" path="res://NPCs/Beach/Seal/Seal.png" id="3_fi4iu"]
|
||||
[ext_resource type="Texture2D" uid="uid://oggti7coatvk" path="res://NPCs/Beach/Seal/SealNote.png" id="4_uqs8h"]
|
||||
[ext_resource type="PackedScene" uid="uid://bwbddg5e5xi54" path="res://Objects/Beach/Ball/SealBall.tscn" id="5_fuf70"]
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_xdtoc"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("3_fi4iu")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_uqs8h")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_bsf3e"]
|
||||
radius = 98.2033
|
||||
|
||||
[node name="Seal" instance=ExtResource("1_evrv5")]
|
||||
script = ExtResource("2_sblbo")
|
||||
|
||||
[node name="Sprite" parent="." index="0"]
|
||||
position = Vector2(-1.2, 21.2)
|
||||
sprite_frames = SubResource("SpriteFrames_xdtoc")
|
||||
frame = 1
|
||||
|
||||
[node name="Interactable" parent="." index="1"]
|
||||
position = Vector2(-1.2, 21.2)
|
||||
|
||||
[node name="Panel" parent="Interactable" index="1"]
|
||||
offset_left = -104.0
|
||||
offset_top = -49.0
|
||||
offset_right = -32.0
|
||||
offset_bottom = -23.0
|
||||
scale = Vector2(3, 3.3)
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="Talkable" parent="." index="2"]
|
||||
position = Vector2(-1.2, 21.2)
|
||||
|
||||
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
|
||||
shape = SubResource("CircleShape2D_bsf3e")
|
||||
|
||||
[node name="CollisionShape2D" parent="." index="3"]
|
||||
position = Vector2(-1.2, 25.2)
|
||||
disabled = true
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="." index="4"]
|
||||
position = Vector2(-1.2, 64.2)
|
||||
polygon = PackedVector2Array(-102, -72, -91, -56, -30, -18, 27, -9, 53, 0, 58, -9, 103, -11, 104, -34, 92, -55, 91, -68, 72, -64, -26, -84, -71, -84, -99, -78)
|
||||
|
||||
[node name="SealBall" parent="." index="5" instance=ExtResource("5_fuf70")]
|
||||
position = Vector2(45, -26)
|
||||
lock_rotation = false
|
||||
|
||||
[node name="BallCatchArea" type="Area2D" parent="." index="6"]
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="BallCatchArea" index="0"]
|
||||
polygon = PackedVector2Array(-113, 18, -78, 60, 2, 79, 82, 81, 128, 63, 144, 31, 135, -8, 101, -37, 1, -64, -78, -62, -119, -26)
|
||||
|
||||
[connection signal="body_entered" from="BallCatchArea" to="." method="_on_ball_catch_area_body_entered"]
|
||||
|
||||
[editable path="Interactable"]
|
||||
[editable path="Interactable/ActionMenu"]
|
||||
[editable path="Talkable"]
|
||||
BIN
NPCs/Beach/Seal/SealNote.png
Normal file
BIN
NPCs/Beach/Seal/SealNote.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
34
NPCs/Beach/Seal/SealNote.png.import
Normal file
34
NPCs/Beach/Seal/SealNote.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://oggti7coatvk"
|
||||
path="res://.godot/imported/SealNote.png-31cbe01d5dd8ec08dcbb0cfd25653f35.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://NPCs/Beach/Seal/SealNote.png"
|
||||
dest_files=["res://.godot/imported/SealNote.png-31cbe01d5dd8ec08dcbb0cfd25653f35.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
Loading…
Add table
Add a link
Reference in a new issue