It's Cow Game! Version 2.04!
This commit is contained in:
commit
a9e1ed9ddd
3148 changed files with 95332 additions and 0 deletions
16
Interactions/Delivery/Deliverable.gd
Normal file
16
Interactions/Delivery/Deliverable.gd
Normal 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
|
||||
21
Interactions/Delivery/Deliverable.tscn
Normal file
21
Interactions/Delivery/Deliverable.tscn
Normal 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")])
|
||||
152
Interactions/Delivery/DeliveryInteface.gd
Normal file
152
Interactions/Delivery/DeliveryInteface.gd
Normal 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()
|
||||
Loading…
Add table
Add a link
Reference in a new issue