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,16 @@
extends Interaction
@onready var deliveryInterface:Window = $DeliveryInteface
var shopInventory = []
func _ready():
add_action("Deliver", open_delivery)
#instantiate_shop_inventory()
func open_delivery():
deliveryInterface.popup_centered()
deliveryInterface.opened()
func instantiate_shop_inventory():
$DeliveryInteface.shopItems = shopInventory

View file

@ -0,0 +1,21 @@
[gd_scene load_steps=5 format=3 uid="uid://b01n0ke0n613i"]
[ext_resource type="Script" path="res://Interactions/Delivery/Deliverable.gd" id="1_1dope"]
[ext_resource type="Script" path="res://Interactions/Delivery/DeliveryInteface.gd" id="2_tcgba"]
[ext_resource type="Script" path="res://Items/Foods/Fruits/Orange.gd" id="3_2iqt2"]
[sub_resource type="CircleShape2D" id="CircleShape2D_dyv8m"]
radius = 85.0235
[node name="Deliverable" type="Node2D"]
script = ExtResource("1_1dope")
[node name="InteractionArea" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="InteractionArea"]
shape = SubResource("CircleShape2D_dyv8m")
[node name="DeliveryInteface" type="Window" parent="."]
visible = false
script = ExtResource("2_tcgba")
DeliveryItems = Array[Resource]([ExtResource("3_2iqt2")])

View file

@ -0,0 +1,152 @@
extends Window
var itemShopDisplayScene = preload("res://UI/Shopping/ItemShopDisplay.tscn")
@onready var inventoryItemDisplayer = $"VBoxContainer/Invs/Inventory/ItemZone/Items"
@onready var shopItemDisplayer = $"VBoxContainer/Invs/Shop/ItemZone/Items"
@onready var playerTradeItemDisplayer = $"VBoxContainer/TradeZone/TradeSides/PlayerSide/ItemZone/Items"
@onready var shopTradeItemDisplayer = $"VBoxContainer/TradeZone/TradeSides/ShopSide/ItemZone/Items"
@onready var costDisplay = $VBoxContainer/CostDisplay
@export var DeliveryItems:Array[Resource]
var shopItems = []
var playerTradeItems:Inventory
var shopTradeItems:Inventory
func _ready():
inventoryItemDisplayer.buttonPressed.connect(add_to_player_trade)
playerTradeItemDisplayer.buttonPressed.connect(remove_from_player_trade)
shopItemDisplayer.buttonPressed.connect(add_to_shop_trade)
shopTradeItemDisplayer.buttonPressed.connect(remove_from_shop_trade)
shopItemDisplayer.quantitiesShown = false
playerTradeItemDisplayer.negativeOptions = true
shopTradeItemDisplayer.negativeOptions = true
playerTradeItemDisplayer.positiveOptions = false
shopTradeItemDisplayer.positiveOptions = false
func opened():
get_tree().paused = true
set_up_inventory()
set_up_shop_inventory()
playerTradeItems = Inventory.new()
shopTradeItems = Inventory.new()
update_cost_display()
func set_up_inventory():
var inv = InventoryManager.get_inventory()
for item in inv.items:
if DeliveryItems.has(item):
inventoryItemDisplayer.inventory.items.append(item)
pass
inventoryItemDisplayer.update_display()
func set_up_shop_inventory():
shopItemDisplayer.inventory.items = shopItems
for i in shopItems.size():
shopItemDisplayer.inventory.quantities.append(1)
shopItemDisplayer.update_display()
func add_to_shop_trade(item):
shopTradeItems.add_item(item)
shopTradeItemDisplayer.inventory = shopTradeItems
shopTradeItemDisplayer.update_display()
update_cost_display()
func remove_from_shop_trade(item):
shopTradeItems.remove_item(item)
shopTradeItemDisplayer.inventory = shopTradeItems
shopTradeItemDisplayer.update_display()
update_cost_display()
func add_to_player_trade(item):
InventoryManager.remove_item_from_inventory(item)
playerTradeItems.add_item(item)
playerTradeItemDisplayer.inventory = playerTradeItems
playerTradeItemDisplayer.update_display()
inventoryItemDisplayer.update_display()
update_cost_display()
func remove_from_player_trade(item):
InventoryManager.add_item_to_inventory(item)
playerTradeItems.remove_item(item)
playerTradeItemDisplayer.inventory = playerTradeItems
playerTradeItemDisplayer.update_display()
inventoryItemDisplayer.update_display()
update_cost_display()
func update_cost_display():
var cost = get_cost()
costDisplay.set_display(cost)
func get_cost():
var playerOffering = 0
var shopOffering = 0
for i in range(playerTradeItems.items.size()):
playerOffering += playerTradeItems.items[i].value * playerTradeItems.quantities[i]
for i in range(shopTradeItems.items.size()):
shopOffering += shopTradeItems.items[i].value * shopTradeItems.quantities[i]
return playerOffering - shopOffering
func reset_items():
for i in range(playerTradeItems.items.size()):
var currentItem = playerTradeItems.items[i]
InventoryManager.add_item_to_inventory(currentItem, playerTradeItems.quantities[i])
playerTradeItems = Inventory.new()
playerTradeItemDisplayer.inventory = playerTradeItems
playerTradeItemDisplayer.update_display()
shopTradeItems = Inventory.new()
shopTradeItemDisplayer.inventory = shopTradeItems
shopTradeItemDisplayer.update_display()
func _on_leave_button_pressed():
reset_items()
get_tree().paused = false
hide()
func _on_confirm_button_pressed():
var currentCost = get_cost()*-1
var currentGrapesOwned = InventoryManager.get_grape_count()
if currentGrapesOwned >= currentCost:
confirm_trade()
func confirm_trade():
var currentCost = get_cost()
InventoryManager.alter_grape_count(currentCost)
for i in range(shopTradeItems.items.size()):
InventoryManager.add_item_to_inventory(shopTradeItems.items[i], shopTradeItems.quantities[i])
playerTradeItems = Inventory.new()
playerTradeItemDisplayer.inventory = playerTradeItems
playerTradeItemDisplayer.update_display()
shopTradeItems = Inventory.new()
shopTradeItemDisplayer.inventory = shopTradeItems
shopTradeItemDisplayer.update_display()
inventoryItemDisplayer.update_display()
update_cost_display()