I hate my code, but buy/sell is done
This commit is contained in:
parent
b68215a710
commit
1ea6c2d296
18 changed files with 208 additions and 64 deletions
20
menus/Base Menu/BuySell/menu_buy.tres
Normal file
20
menus/Base Menu/BuySell/menu_buy.tres
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
[gd_resource type="Resource" script_class="Menu" load_steps=5 format=3 uid="uid://cbvax7aprnrig"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/combo_menu_resource.gd" id="1_ebwkx"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/menu.gd" id="3_jvmhu"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_5pmle"]
|
||||||
|
script = ExtResource("1_ebwkx")
|
||||||
|
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_u4lsw"]
|
||||||
|
script = ExtResource("1_ebwkx")
|
||||||
|
item_script = &"res://scripts/Base/Menu/set_buy_sell_selected_item.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/BuySell/menu_buy_amount.tres"
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("3_jvmhu")
|
||||||
|
item_ids = Array[String](["BASE_FETCH_BUY_SELL_CANCEL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL_NEXT"])
|
||||||
|
item_actions = Array[int]([3, 3, 3, 3, 3, 3, 3, 0])
|
||||||
|
item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_5pmle"), SubResource("Resource_u4lsw"), SubResource("Resource_u4lsw"), SubResource("Resource_u4lsw"), SubResource("Resource_u4lsw"), SubResource("Resource_u4lsw"), SubResource("Resource_u4lsw"), null])
|
||||||
20
menus/Base Menu/BuySell/menu_buy_amount.tres
Normal file
20
menus/Base Menu/BuySell/menu_buy_amount.tres
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
[gd_resource type="Resource" script_class="Menu" load_steps=5 format=3 uid="uid://cgxrk15hgidts"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/combo_menu_resource.gd" id="1_s1rlt"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/menu.gd" id="2_ew63m"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_5pmle"]
|
||||||
|
script = ExtResource("1_s1rlt")
|
||||||
|
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_81rsd"]
|
||||||
|
script = ExtResource("1_s1rlt")
|
||||||
|
item_script = &"res://scripts/Base/Menu/buy_sell_button.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("2_ew63m")
|
||||||
|
item_ids = Array[String](["BASE_FETCH_SELL_CANCEL", "BASE_BUY_ITEM", "BASE_BUY_ITEM", "BASE_BUY_ITEM", "BASE_BUY_ITEM", "BASE_BUY_ITEM", "BASE_BUY_ITEM", "BASE_BUY_ITEM"])
|
||||||
|
item_actions = Array[int]([3, 3, 3, 3, 3, 3, 3, 3])
|
||||||
|
item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_5pmle"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd")])
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
[gd_resource type="Resource" script_class="Menu" load_steps=11 format=3 uid="uid://cbvax7aprnrig"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/Classes/Menu/combo_menu_resource.gd" id="1_erxhv"]
|
|
||||||
[ext_resource type="Script" path="res://scripts/Classes/Menu/menu_menu_resource.gd" id="2_j0wms"]
|
|
||||||
[ext_resource type="Script" path="res://scripts/Classes/Menu/menu.gd" id="2_ppqjr"]
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_5pmle"]
|
|
||||||
script = ExtResource("1_erxhv")
|
|
||||||
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
|
||||||
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_nld04"]
|
|
||||||
script = ExtResource("2_j0wms")
|
|
||||||
item = &"res://menus/Base Menu/BuySell/menu_buy_sell_amount.tres"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_skkl2"]
|
|
||||||
script = ExtResource("2_j0wms")
|
|
||||||
item = &"res://menus/Base Menu/BuySell/menu_buy_sell_amount.tres"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_mavao"]
|
|
||||||
script = ExtResource("2_j0wms")
|
|
||||||
item = &"res://menus/Base Menu/BuySell/menu_buy_sell_amount.tres"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_h23aj"]
|
|
||||||
script = ExtResource("2_j0wms")
|
|
||||||
item = &"res://menus/Base Menu/BuySell/menu_buy_sell_amount.tres"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_ncvbu"]
|
|
||||||
script = ExtResource("2_j0wms")
|
|
||||||
item = &"res://menus/Base Menu/BuySell/menu_buy_sell_amount.tres"
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_n2hk8"]
|
|
||||||
script = ExtResource("2_j0wms")
|
|
||||||
item = &"res://menus/Base Menu/BuySell/menu_buy_sell_amount.tres"
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
script = ExtResource("2_ppqjr")
|
|
||||||
item_ids = Array[String](["BASE_FETCH_BUY_SELL_CANCEL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL_NEXT"])
|
|
||||||
item_actions = Array[int]([3, 1, 1, 1, 1, 1, 1, 0])
|
|
||||||
item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_5pmle"), SubResource("Resource_nld04"), SubResource("Resource_skkl2"), SubResource("Resource_mavao"), SubResource("Resource_h23aj"), SubResource("Resource_ncvbu"), SubResource("Resource_n2hk8"), null])
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
[gd_resource type="Resource" script_class="Menu" load_steps=4 format=3 uid="uid://cgxrk15hgidts"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scripts/Classes/Menu/combo_menu_resource.gd" id="1_u5y0w"]
|
|
||||||
[ext_resource type="Script" path="res://scripts/Classes/Menu/menu.gd" id="2_0edl4"]
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_5pmle"]
|
|
||||||
script = ExtResource("1_u5y0w")
|
|
||||||
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
|
||||||
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
script = ExtResource("2_0edl4")
|
|
||||||
item_ids = Array[String](["BASE_FETCH_SELL_CANCEL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL", "NULL"])
|
|
||||||
item_actions = Array[int]([3, 0, 0, 0, 0, 0, 0, 0])
|
|
||||||
item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_5pmle"), null, null, null, null, null, null, null])
|
|
||||||
20
menus/Base Menu/BuySell/menu_sell.tres
Normal file
20
menus/Base Menu/BuySell/menu_sell.tres
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
[gd_resource type="Resource" script_class="Menu" load_steps=5 format=3 uid="uid://bu2al2voncvqw"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/combo_menu_resource.gd" id="1_vcj78"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/menu.gd" id="3_maypa"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_5pmle"]
|
||||||
|
script = ExtResource("1_vcj78")
|
||||||
|
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_cssqs"]
|
||||||
|
script = ExtResource("1_vcj78")
|
||||||
|
item_script = &"res://scripts/Base/Menu/set_buy_sell_selected_item.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/BuySell/menu_sell_amount.tres"
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("3_maypa")
|
||||||
|
item_ids = Array[String](["BASE_FETCH_BUY_SELL_CANCEL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL", "BASE_BUY_SELL_NEXT"])
|
||||||
|
item_actions = Array[int]([3, 3, 3, 3, 3, 3, 3, 0])
|
||||||
|
item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_5pmle"), SubResource("Resource_cssqs"), SubResource("Resource_cssqs"), SubResource("Resource_cssqs"), SubResource("Resource_cssqs"), SubResource("Resource_cssqs"), SubResource("Resource_cssqs"), null])
|
||||||
20
menus/Base Menu/BuySell/menu_sell_amount.tres
Normal file
20
menus/Base Menu/BuySell/menu_sell_amount.tres
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
[gd_resource type="Resource" script_class="Menu" load_steps=5 format=3 uid="uid://xw3ih548sgwl"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/combo_menu_resource.gd" id="1_5qwt8"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/Classes/Menu/menu.gd" id="2_u5q7w"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_5pmle"]
|
||||||
|
script = ExtResource("1_5qwt8")
|
||||||
|
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_81rsd"]
|
||||||
|
script = ExtResource("1_5qwt8")
|
||||||
|
item_script = &"res://scripts/Base/Menu/buy_sell_button.gd"
|
||||||
|
item_menu = &"res://menus/Base Menu/root_menu.tres"
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("2_u5q7w")
|
||||||
|
item_ids = Array[String](["BASE_FETCH_SELL_CANCEL", "BASE_SELL_ITEM", "BASE_SELL_ITEM", "BASE_SELL_ITEM", "BASE_SELL_ITEM", "BASE_SELL_ITEM", "BASE_SELL_ITEM", "BASE_SELL_ITEM"])
|
||||||
|
item_actions = Array[int]([3, 3, 3, 3, 3, 3, 3, 3])
|
||||||
|
item_data = Array[Resource("res://scripts/Classes/Menu/menu_resource.gd")]([SubResource("Resource_5pmle"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd"), SubResource("Resource_81rsd")])
|
||||||
|
|
@ -6,12 +6,12 @@
|
||||||
[sub_resource type="Resource" id="Resource_iiy7m"]
|
[sub_resource type="Resource" id="Resource_iiy7m"]
|
||||||
script = ExtResource("1_d2x8v")
|
script = ExtResource("1_d2x8v")
|
||||||
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
||||||
item_menu = &"res://menus/Base Menu/BuySell/menu_buy_sell.tres"
|
item_menu = &"res://menus/Base Menu/BuySell/menu_buy.tres"
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_pbhiw"]
|
[sub_resource type="Resource" id="Resource_pbhiw"]
|
||||||
script = ExtResource("1_d2x8v")
|
script = ExtResource("1_d2x8v")
|
||||||
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
item_script = &"res://scripts/Base/Menu/send_message.gd"
|
||||||
item_menu = &"res://menus/Base Menu/BuySell/menu_buy_sell.tres"
|
item_menu = &"res://menus/Base Menu/BuySell/menu_sell.tres"
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_h4chp")
|
script = ExtResource("1_h4chp")
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@
|
||||||
[ext_resource type="Texture2D" uid="uid://db4euprxhape0" path="res://sprites/9s.png" id="1_uf5rv"]
|
[ext_resource type="Texture2D" uid="uid://db4euprxhape0" path="res://sprites/9s.png" id="1_uf5rv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://hxrx87gda3uf" path="res://sprites/Bases/Menu/end_communications.png" id="2_ceeiv"]
|
[ext_resource type="Texture2D" uid="uid://hxrx87gda3uf" path="res://sprites/Bases/Menu/end_communications.png" id="2_ceeiv"]
|
||||||
[ext_resource type="Script" path="res://scripts/Base/actions_menu.gd" id="4_3gtyd"]
|
[ext_resource type="Script" path="res://scripts/Base/actions_menu.gd" id="4_3gtyd"]
|
||||||
[ext_resource type="Script" path="res://scripts/Base/close_button.gd" id="4_68ool"]
|
|
||||||
[ext_resource type="Script" path="res://scripts/Base/Menu/dialogue.gd" id="4_swpa1"]
|
[ext_resource type="Script" path="res://scripts/Base/Menu/dialogue.gd" id="4_swpa1"]
|
||||||
[ext_resource type="Resource" uid="uid://2ohcxoor22hr" path="res://menus/Base Menu/root_menu.tres" id="6_78in3"]
|
[ext_resource type="Resource" uid="uid://2ohcxoor22hr" path="res://menus/Base Menu/root_menu.tres" id="6_78in3"]
|
||||||
|
[ext_resource type="Script" path="res://scripts/Base/Menu/close_button.gd" id="8_1k57w"]
|
||||||
[ext_resource type="Script" path="res://scripts/Base/Menu/buy_sell.gd" id="9_u6g71"]
|
[ext_resource type="Script" path="res://scripts/Base/Menu/buy_sell.gd" id="9_u6g71"]
|
||||||
|
|
||||||
[node name="BaseMenu" type="Control"]
|
[node name="BaseMenu" type="Control"]
|
||||||
|
|
@ -183,7 +183,7 @@ offset_top = 1.0
|
||||||
offset_right = 73.0
|
offset_right = 73.0
|
||||||
offset_bottom = 73.0
|
offset_bottom = 73.0
|
||||||
icon = ExtResource("2_ceeiv")
|
icon = ExtResource("2_ceeiv")
|
||||||
script = ExtResource("4_68ool")
|
script = ExtResource("8_1k57w")
|
||||||
|
|
||||||
[node name="BuySell" type="Node" parent="."]
|
[node name="BuySell" type="Node" parent="."]
|
||||||
script = ExtResource("9_u6g71")
|
script = ExtResource("9_u6g71")
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ func get_buy_sell_list(buy: bool) -> String:
|
||||||
total += item_description(buy, item) + "\n"
|
total += item_description(buy, item) + "\n"
|
||||||
return total
|
return total
|
||||||
|
|
||||||
|
## Returns amount of items in buy/sell list
|
||||||
func get_buy_sell_len(buy: bool) -> int:
|
func get_buy_sell_len(buy: bool) -> int:
|
||||||
var list = items_on_buy if buy else items_on_sell
|
var list = items_on_buy if buy else items_on_sell
|
||||||
return len(list)
|
return len(list)
|
||||||
|
|
|
||||||
41
scripts/Base/Menu/buy_sell_button.gd
Normal file
41
scripts/Base/Menu/buy_sell_button.gd
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
extends MessageSenderAction
|
||||||
|
|
||||||
|
## How many items will be bought/sold
|
||||||
|
var amount: int
|
||||||
|
## How much money will be received/spent
|
||||||
|
var total_cost: float
|
||||||
|
## Item name which will be added to cargo
|
||||||
|
var item_name: String
|
||||||
|
|
||||||
|
var buy: bool
|
||||||
|
|
||||||
|
@onready var player_ship: PlayerShip = get_tree().current_scene.player_ship
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
amount = format["amount"]
|
||||||
|
total_cost = format["total_cost"]
|
||||||
|
item_name = format["item_name"]
|
||||||
|
buy = format["buy"]
|
||||||
|
if amount < 1:
|
||||||
|
disabled = true
|
||||||
|
elif !buy and player_ship.money < total_cost:
|
||||||
|
disabled = true
|
||||||
|
elif buy and item_name in player_ship.cargo:
|
||||||
|
if player_ship.cargo[item_name] < amount:
|
||||||
|
disabled = true
|
||||||
|
elif buy and !(item_name in player_ship.cargo):
|
||||||
|
disabled = true
|
||||||
|
super._ready()
|
||||||
|
|
||||||
|
func action():
|
||||||
|
get_parent().buy_sell_amount = amount
|
||||||
|
if !buy and player_ship.money >= total_cost:
|
||||||
|
player_ship.money -= total_cost
|
||||||
|
if item_name in player_ship.cargo:
|
||||||
|
player_ship.cargo[item_name] += amount
|
||||||
|
else:
|
||||||
|
player_ship.cargo[item_name] = amount
|
||||||
|
elif buy and player_ship.cargo[item_name] >= amount:
|
||||||
|
player_ship.cargo[item_name] -= amount
|
||||||
|
player_ship.money += total_cost
|
||||||
|
super.action()
|
||||||
|
|
@ -4,6 +4,10 @@ extends NinePatchRect
|
||||||
const BUY_FETCH = "BASE_FETCH_BUY"
|
const BUY_FETCH = "BASE_FETCH_BUY"
|
||||||
## This message will trigger buy/sell node to fetch sell prices
|
## This message will trigger buy/sell node to fetch sell prices
|
||||||
const SELL_FETCH = "BASE_FETCH_SELL"
|
const SELL_FETCH = "BASE_FETCH_SELL"
|
||||||
|
## This message will trigger dialogue to get selected item data
|
||||||
|
const BUY_ITEM = "BASE_BUY_ITEM"
|
||||||
|
## This message will trigger dialogue to get selected item data
|
||||||
|
const SELL_ITEM = "BASE_SELL_ITEM"
|
||||||
|
|
||||||
@onready var dialogue = $DialogueView
|
@onready var dialogue = $DialogueView
|
||||||
@onready var buy_sell = $"../../BuySell"
|
@onready var buy_sell = $"../../BuySell"
|
||||||
|
|
@ -24,7 +28,18 @@ func send_message(msg: Message):
|
||||||
format["buy_list"] = buy_sell.get_buy_sell_list(true)
|
format["buy_list"] = buy_sell.get_buy_sell_list(true)
|
||||||
actions_menu.buy = true
|
actions_menu.buy = true
|
||||||
actions_menu.buy_sell_options = buy_sell.get_buy_sell_len(true)
|
actions_menu.buy_sell_options = buy_sell.get_buy_sell_len(true)
|
||||||
|
BUY_ITEM:
|
||||||
|
var list = buy_sell.items_on_sell
|
||||||
|
var id = actions_menu.buy_sell_selected_item
|
||||||
|
var item_name = list[id].name
|
||||||
|
format["amount"] = actions_menu.buy_sell_amount
|
||||||
|
format["item_name"] = item_name
|
||||||
|
SELL_ITEM:
|
||||||
|
var list = buy_sell.items_on_buy
|
||||||
|
var id = actions_menu.buy_sell_selected_item
|
||||||
|
var item_name = list[id].name
|
||||||
|
format["amount"] = actions_menu.buy_sell_amount
|
||||||
|
format["item_name"] = item_name
|
||||||
var new_msg = tr(msg.fact + "_RECEIVED").format(format)
|
var new_msg = tr(msg.fact + "_RECEIVED").format(format)
|
||||||
var old_len = len(dialogue.get_parsed_text())
|
var old_len = len(dialogue.get_parsed_text())
|
||||||
dialogue.append_text(new_msg)
|
dialogue.append_text(new_msg)
|
||||||
|
|
|
||||||
7
scripts/Base/Menu/set_buy_sell_selected_item.gd
Normal file
7
scripts/Base/Menu/set_buy_sell_selected_item.gd
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
extends MenuAction
|
||||||
|
|
||||||
|
@onready var menu = get_parent()
|
||||||
|
|
||||||
|
func action():
|
||||||
|
menu.buy_sell_selected_item = id - 1 + menu.buy_sell_tab * 6
|
||||||
|
get_parent().transit_menu(id)
|
||||||
|
|
@ -14,12 +14,18 @@ extends Node
|
||||||
|
|
||||||
var base
|
var base
|
||||||
|
|
||||||
|
var player_ship
|
||||||
|
|
||||||
## Script attached to transit buttons
|
## Script attached to transit buttons
|
||||||
const TRANSIT_BUTTON_SCRIPT = preload("res://scripts/Classes/Menu/transit_button.gd")
|
const TRANSIT_BUTTON_SCRIPT = preload("res://scripts/Classes/Menu/transit_button.gd")
|
||||||
## Buy/Sell item trigger
|
## Buy/Sell item trigger
|
||||||
const BUY_SELL_ITEM = "BUY_SELL_ITEM"
|
const BUY_SELL_ITEM = "BUY_SELL_ITEM"
|
||||||
## Buy/Sell button placeholder
|
## Buy/Sell button placeholder
|
||||||
const BASE_BUY_SELL = "BASE_BUY_SELL"
|
const BASE_BUY_SELL = "BASE_BUY_SELL"
|
||||||
|
## Button to buy amount of item
|
||||||
|
const BASE_BUY_ITEM = "BASE_BUY_ITEM"
|
||||||
|
## Button to sell amount of item
|
||||||
|
const BASE_SELL_ITEM = "BASE_SELL_ITEM"
|
||||||
## Null button ID
|
## Null button ID
|
||||||
const NULL = "NULL"
|
const NULL = "NULL"
|
||||||
|
|
||||||
|
|
@ -32,6 +38,10 @@ var buy: bool = false
|
||||||
var buy_sell_options: int = -1
|
var buy_sell_options: int = -1
|
||||||
## Which buy/sell tab should be opened (tab holds 6 items)
|
## Which buy/sell tab should be opened (tab holds 6 items)
|
||||||
var buy_sell_tab: int = 0
|
var buy_sell_tab: int = 0
|
||||||
|
## Which item is selected to buy/sell
|
||||||
|
var buy_sell_selected_item: int = -1
|
||||||
|
## How many items will be bought/sold
|
||||||
|
var buy_sell_amount = 0
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
load_menu()
|
load_menu()
|
||||||
|
|
@ -39,6 +49,7 @@ func _ready():
|
||||||
|
|
||||||
func post_ready():
|
func post_ready():
|
||||||
base = get_parent().get_parent().get_parent().base
|
base = get_parent().get_parent().get_parent().base
|
||||||
|
player_ship = base.player_ship
|
||||||
|
|
||||||
## Called when menu is changed
|
## Called when menu is changed
|
||||||
func load_menu():
|
func load_menu():
|
||||||
|
|
@ -52,6 +63,11 @@ func load_menu():
|
||||||
format["item_id"] = i + buy_sell_tab * 6
|
format["item_id"] = i + buy_sell_tab * 6
|
||||||
format["item_name"] = tr(list[i - 1 + buy_sell_tab * 6].name)
|
format["item_name"] = tr(list[i - 1 + buy_sell_tab * 6].name)
|
||||||
menu.item_ids[i] = BUY_SELL_ITEM
|
menu.item_ids[i] = BUY_SELL_ITEM
|
||||||
|
BASE_BUY_ITEM:
|
||||||
|
format = get_buy_sell_button_format(buy_sell_selected_item, i)
|
||||||
|
BASE_SELL_ITEM:
|
||||||
|
format = get_buy_sell_button_format(buy_sell_selected_item, i)
|
||||||
|
actions[i].disabled = false
|
||||||
# disconnect previous action
|
# disconnect previous action
|
||||||
if actions[i] is TransitButton:
|
if actions[i] is TransitButton:
|
||||||
actions[i].button_up.disconnect(transit_menu)
|
actions[i].button_up.disconnect(transit_menu)
|
||||||
|
|
@ -81,3 +97,40 @@ func transit_menu(id: int):
|
||||||
var new_menu = menu.item_data[id].load_menu().duplicate()
|
var new_menu = menu.item_data[id].load_menu().duplicate()
|
||||||
menu = new_menu
|
menu = new_menu
|
||||||
load_menu()
|
load_menu()
|
||||||
|
|
||||||
|
func get_buy_sell_button_format(item_id: int, button_id: int) -> Dictionary:
|
||||||
|
var amount = 0
|
||||||
|
var prices = base.buy_prices if buy else base.sell_prices
|
||||||
|
var items = base.items_on_buy if buy else base.items_on_sell
|
||||||
|
var item_name = items[item_id].name
|
||||||
|
var price = prices[item_id]
|
||||||
|
match button_id:
|
||||||
|
1:
|
||||||
|
amount = 1
|
||||||
|
2:
|
||||||
|
amount = 5
|
||||||
|
3:
|
||||||
|
amount = 10
|
||||||
|
4:
|
||||||
|
amount = 50
|
||||||
|
5:
|
||||||
|
amount = 100
|
||||||
|
6:
|
||||||
|
if buy:
|
||||||
|
amount = roundi(player_ship.money / price)
|
||||||
|
elif item_name in player_ship.cargo:
|
||||||
|
amount = player_ship.cargo[item_name]
|
||||||
|
7:
|
||||||
|
if buy:
|
||||||
|
amount = roundi(player_ship.money / (price * 2))
|
||||||
|
elif item_name in player_ship.cargo:
|
||||||
|
amount = roundi(player_ship.cargo[item_name] / 2)
|
||||||
|
var total_cost = price * amount
|
||||||
|
var format = {
|
||||||
|
"amount": amount,
|
||||||
|
"total_cost": total_cost,
|
||||||
|
"item": item_name,
|
||||||
|
"item_name": tr(item_name),
|
||||||
|
"buy": buy
|
||||||
|
}
|
||||||
|
return format
|
||||||
|
|
|
||||||
|
|
@ -123,16 +123,18 @@ func generate_prices():
|
||||||
# gen prices for buyable items
|
# gen prices for buyable items
|
||||||
for i in range(len(items_on_buy)):
|
for i in range(len(items_on_buy)):
|
||||||
var item = items_on_buy[i]
|
var item = items_on_buy[i]
|
||||||
|
var avg = (item.max_price + item.min_price) * 50
|
||||||
if item in items_on_sell:
|
if item in items_on_sell:
|
||||||
# buy not higher than avg price
|
# buy not higher than avg price
|
||||||
buy_prices.append(randi_range(item.min_price * 100, (item.max_price + item.min_price) * 50) / 100.0)
|
buy_prices.append(randi_range(item.min_price * 100, avg) / 100.0)
|
||||||
else:
|
else:
|
||||||
buy_prices.append(randi_range(item.min_price * 100, item.max_price * 100) / 100.0)
|
buy_prices.append(randi_range(item.min_price * 100, item.max_price * 100) / 100.0)
|
||||||
# gen prices for items in sell
|
# gen prices for items in sell
|
||||||
for i in range(len(items_on_sell)):
|
for i in range(len(items_on_sell)):
|
||||||
var item = items_on_sell[i]
|
var item = items_on_sell[i]
|
||||||
|
var avg = (item.max_price + item.min_price) * 50
|
||||||
if item in items_on_buy:
|
if item in items_on_buy:
|
||||||
# sell not lower than avg price
|
# sell not lower than avg price
|
||||||
sell_prices.append(randi_range((item.min_price + item.max_price) * 50, item.max_price * 100) / 100.0)
|
sell_prices.append(randi_range(avg, item.max_price * 100) / 100.0)
|
||||||
else:
|
else:
|
||||||
sell_prices.append(randi_range(item.min_price * 100, item.max_price * 100) / 100.0)
|
sell_prices.append(randi_range(item.min_price * 100, item.max_price * 100) / 100.0)
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,9 @@ BASE_FETCH_BUY_SELL_CANCEL_RECEIVED,I changed my mind\nErm...Fine...\nAnything e
|
||||||
BASE_BUY_SELL, ,
|
BASE_BUY_SELL, ,
|
||||||
BASE_BUY_SELL_NEXT,Next tab,Следующая вкладка
|
BASE_BUY_SELL_NEXT,Next tab,Следующая вкладка
|
||||||
BASE_BUY_SELL_PREV,Previous tab,Предыдущая вкладка
|
BASE_BUY_SELL_PREV,Previous tab,Предыдущая вкладка
|
||||||
BASE_BUY_ITEM_LOCAL,Buy {amount}x{item_name} ({total_price}),Купить {amount}x{item_name} ({total_price})
|
BASE_BUY_ITEM_LOCAL,Buy {amount}x{item_name} ({total_cost}),Купить {amount}x{item_name} ({total_cost})
|
||||||
BASE_BUY_ITEM_RECEIVED,"[BOUGHT {amount}x{item_name}]\nThanks, anything else?\n> ","[КУПЛЕНО {amount}x{item_name}]\nСпасибо, что-то ещё?\n> "
|
BASE_BUY_ITEM_RECEIVED,"[BOUGHT {amount}x{item_name}]\nThanks, anything else?\n> ","[КУПЛЕНО {amount}x{item_name}]\nСпасибо, что-то ещё?\n> "
|
||||||
BASE_SELL_ITEM_LOCAL,Sell {amount}x{item_name} ({total_price}),Продать {amount}x{item_name} ({total_price})
|
BASE_SELL_ITEM_LOCAL,Sell {amount}x{item_name} ({total_cost}),Продать {amount}x{item_name} ({total_cost})
|
||||||
BASE_SELL_ITEM_RECEIVED,"[SOLD {amount}x{item_name}]\nThanks, anything else?\n> ","[ПРОДАНО {amount}x{item_name}]\nСпасибо, что-то ещё?\n> "
|
BASE_SELL_ITEM_RECEIVED,"[SOLD {amount}x{item_name}]\nThanks, anything else?\n> ","[ПРОДАНО {amount}x{item_name}]\nСпасибо, что-то ещё?\n> "
|
||||||
BUY_SELL_ITEM,{item_id}. {item_name},{item_id}. {item_name}
|
BUY_SELL_ITEM,{item_id}. {item_name},{item_id}. {item_name}
|
||||||
NULL, ,
|
NULL, ,
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue