It's Cow Game! Version 2.04!

This commit is contained in:
PajamaBee 2024-09-19 23:06:51 -05:00
commit a9e1ed9ddd
3148 changed files with 95332 additions and 0 deletions

View file

@ -0,0 +1,33 @@
~ start
if not get_save_value("BeaverLoveQuestStarted", false):
Brench: Hello. Sorry but I'm busy writing right now.
Brench: Have a good day.
=> END
if DialogueBoxManager.currentSpeaker.novel_check():
=> givingLoveNovel
if get_save_value("BeaverLoveQuestComplete", false):
Brench: Omg did they like it?
Brench: If you bring me another of his novels I should have a new tome ready to deliver.
=> END
Brench: Hello do you have something for me?
Brench: It doesn't seem like you have anything maybe it got mushed up in the water.
Brench: Pleasure to talk to you, though I have work to get back to.
=> END
~ givingLoveNovel
do DialogueBoxManager.currentSpeaker.take_novel()
if get_save_value("BeaverLoveNovelDelivered", false):
Brench: Omg another novel. Thank you so much for delivering this.
Brench: Here I have another tome ready. Please take it to Lammy.
else:
Brench: omg what is this? o_o
Brench: i,,,, please deliver this tome back to him
do set_save_value("BeaverLoveNovelDelivered", true)
do DialogueBoxManager.currentSpeaker.take_novel()
do DialogueBoxManager.currentSpeaker.give_tome()
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://dkyjkli2xe13s"
path="res://.godot/imported/BlissfulBeaver.dialogue-c7ec852f40224fb0746d0698d2bd0296.tres"
[deps]
source_file="res://NPCs/Beavers/BlissfulBeaver/BlissfulBeaver.dialogue"
dest_files=["res://.godot/imported/BlissfulBeaver.dialogue-c7ec852f40224fb0746d0698d2bd0296.tres"]
[params]
defaults=true

View file

@ -0,0 +1,22 @@
extends NPC
const loveNovelItemClass = preload("res://Items/Paper/LoveNovel.gd")
var loveNovel
const loveTomeItemClass = preload("res://Items/Paper/LoveTome.gd")
var loveTome
func _ready():
dialogueResource = load("res://NPCs/Beavers/BlissfulBeaver/BlissfulBeaver.dialogue")
loveNovel = loveNovelItemClass.new()
loveTome = loveTomeItemClass.new()
func take_novel():
InventoryManager.spend_item(loveNovel)
func give_tome():
InventoryManager.add_item_to_inventory(loveTome)
MessageManager.item_popup(loveTome.duplicate())
func novel_check():
return InventoryManager.check_if_in_inventory(loveNovel)

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbk44prbe3mj5"
path="res://.godot/imported/BlissfulBeaver.png-d5e1068051983d89c93deea67e961508.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Beavers/BlissfulBeaver/BlissfulBeaver.png"
dest_files=["res://.godot/imported/BlissfulBeaver.png-d5e1068051983d89c93deea67e961508.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

View file

@ -0,0 +1,49 @@
[gd_scene load_steps=7 format=3 uid="uid://b5rhxql3yxell"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_cly10"]
[ext_resource type="Script" path="res://NPCs/Beavers/BlissfulBeaver/BlissfulBeaver.gd" id="2_i5pex"]
[ext_resource type="Texture2D" uid="uid://cbk44prbe3mj5" path="res://NPCs/Beavers/BlissfulBeaver/BlissfulBeaver.png" id="3_x4qei"]
[sub_resource type="SpriteFrames" id="SpriteFrames_ltd81"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_x4qei")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_ew5ty"]
radius = 30.2655
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_221ce"]
radius = 7.0
height = 82.0
[node name="BlissfulBeaver" instance=ExtResource("1_cly10")]
script = ExtResource("2_i5pex")
[node name="Sprite" parent="." index="0"]
position = Vector2(-6, -7)
sprite_frames = SubResource("SpriteFrames_ltd81")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -43.0
offset_top = -29.0
offset_right = 62.0
offset_bottom = 14.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(0, -8)
shape = SubResource("CircleShape2D_ew5ty")
[node name="CollisionShape2D" parent="." index="3"]
position = Vector2(0, 3)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_221ce")
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]

View file

@ -0,0 +1,51 @@
~ start
if DialogueBoxManager.currentSpeaker.tome_check():
=> givingLoveTome
if get_save_value("BeaverLoveQuestComplete", false):
Lammy: omg thank you again for helping sorry can't talk I have so much to read
=> END
if get_save_value("BeaverLoveQuestStarted", false):
Lammy: omg omg omg omg omg
Lammy: i'll keep writing novels in case you lose one of mine or his response
Lammy: if you leave for a moment and come back there'll be one next to me
=> END
Lammy: hi omg can you help me with something?
- yes => startQuest
- no => declineQuest
~ startQuest
if not LevelManager.skill_check("swimming", 10) or not LevelManager.skill_check("building", 10):
Lammy: wait it might not be safe
Lammy: you should get level 10 Swimming and 10 Building and come back
=> END
Lammy: i wrote this love novel for the beaver across the river
Lammy: but i'm too shy to bring it over, too shy to even go close really
Lammy: i'll imbue you with my beaver knowledge so you can build a dam to get over there
Lammy: *you can now build beaver dams*
Lammy: be careful, if you're carrying a heavy inventory you'll need to store some stuff or build a stronger dam
Lammy: if you don't it might break and the love novel will get soaked
Lammy: thank you good luck o-o
do set_save_value("BeaverLoveQuestStarted", true)
=> END
~ declineQuest
Lammy: ok no worries...
~ givingLoveTome
do DialogueBoxManager.currentSpeaker.take_tome()
if get_save_value("BeaverLoveQuestComplete", false):
Lammy: woahh another one :o
Lammy: thank you so much, here have some sticks. they're on the dam.
do DialogueBoxManager.currentSpeaker.give_sticks()
=> END
Lammy: whuh, what is this? omg. I gotta read this right away.
Lammy: thank you o-o
Lammy: have this gift, it should help you burn dams
Lammy: thank you so much o-o
do set_save_value("BeaverLoveQuestComplete", true)
do QuestManager.complete_quest("Beaver Love")
=> END

View file

@ -0,0 +1,15 @@
[remap]
importer="dialogue_manager_compiler_11"
type="Resource"
uid="uid://fufgvq7h8egb"
path="res://.godot/imported/LongingBeaver.dialogue-09f46d5949c0562a4ac953d03b0c9cee.tres"
[deps]
source_file="res://NPCs/Beavers/LongingBeaver/LongingBeaver.dialogue"
dest_files=["res://.godot/imported/LongingBeaver.dialogue-09f46d5949c0562a4ac953d03b0c9cee.tres"]
[params]
defaults=true

View file

@ -0,0 +1,39 @@
extends NPC
const loveTomeItemClass = preload("res://Items/Paper/LoveTome.gd")
var loveTome
const stickItemClass = preload("res://Items/Plants/Stick.gd")
const birchStickItemClass = preload("res://Items/Plants/BirchStick.gd")
const magicStickItemClass = preload("res://Items/Plants/MagicStick.gd")
var rng = RandomNumberGenerator.new()
func _ready():
dialogueResource = load("res://NPCs/Beavers/LongingBeaver/LongingBeaver.dialogue")
loveTome = loveTomeItemClass.new()
GlobalEvents.itemBurnt.connect(important_item_burnt)
func important_item_burnt(item:Item):
if item.get_name(false) == "Love Novel" or item.get_name(false) == "Love Tome":
MessageManager.addMessage("AAAAAAAAAAAAA", self, "Lammy", Color.YELLOW)
func take_tome():
InventoryManager.spend_item(loveTome)
func give_sticks():
var result = rng.randi_range(0, 100)
if result <= 45:
InventoryManager.add_item_to_inventory(stickItemClass.new(), 5)
MessageManager.item_popup(stickItemClass.new())
elif result <= 82:
InventoryManager.add_item_to_inventory(birchStickItemClass.new(), 4)
MessageManager.item_popup(birchStickItemClass.new())
else:
InventoryManager.add_item_to_inventory(magicStickItemClass.new(), 1)
MessageManager.item_popup(magicStickItemClass.new())
AchievementManager.complete_achievement("75 WCing Beaver")
func tome_check():
return InventoryManager.check_if_in_inventory(loveTome)

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dpp7gp1v0576u"
path="res://.godot/imported/LongingBeaver.png-483816d4310898b2bc3a4dc7c72c7855.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://NPCs/Beavers/LongingBeaver/LongingBeaver.png"
dest_files=["res://.godot/imported/LongingBeaver.png-483816d4310898b2bc3a4dc7c72c7855.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

View file

@ -0,0 +1,49 @@
[gd_scene load_steps=7 format=3 uid="uid://6427y8sddblw"]
[ext_resource type="PackedScene" uid="uid://doqfsp7yxools" path="res://NPCs/NPC.tscn" id="1_nh0ii"]
[ext_resource type="Script" path="res://NPCs/ComingSoonCat/ComingSoonCat.gd" id="2_ubgs1"]
[ext_resource type="Texture2D" uid="uid://dpp7gp1v0576u" path="res://NPCs/Beavers/LongingBeaver/LongingBeaver.png" id="3_yvhnj"]
[sub_resource type="SpriteFrames" id="SpriteFrames_ltd81"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_yvhnj")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_ew5ty"]
radius = 30.2655
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_g5tls"]
radius = 7.0
height = 64.0
[node name="LongingBeaver" instance=ExtResource("1_nh0ii")]
script = ExtResource("2_ubgs1")
[node name="Sprite" parent="." index="0"]
position = Vector2(8, -6)
sprite_frames = SubResource("SpriteFrames_ltd81")
[node name="Panel" parent="Interactable" index="1"]
offset_left = -51.0
offset_top = -27.0
offset_right = 35.0
offset_bottom = 11.0
[node name="CollisionShape2D" parent="Talkable/InteractionArea" index="0"]
position = Vector2(0, -8)
shape = SubResource("CircleShape2D_ew5ty")
[node name="CollisionShape2D" parent="." index="3"]
position = Vector2(0, 2)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_g5tls")
[editable path="Interactable"]
[editable path="Interactable/ActionMenu"]
[editable path="Talkable"]