Equipment menu
This commit is contained in:
parent
c6bf51f1b0
commit
bef15301cb
28 changed files with 809 additions and 48 deletions
|
|
@ -10,6 +10,15 @@ var want_to_buy : Array[Item] = []
|
|||
var sell_prices : Array[float] = []
|
||||
var buy_prices : Array[float] = []
|
||||
|
||||
var available_hulls : Array[String] = []
|
||||
var available_engines : Array[String] = []
|
||||
var available_shields : Array[String] = []
|
||||
var available_weapons : Array[String] = []
|
||||
var hulls_prices : Dictionary
|
||||
var engines_prices : Dictionary
|
||||
var shields_prices : Dictionary
|
||||
var weapons_prices : Dictionary
|
||||
|
||||
var quest : Quest = Quest.new()
|
||||
const available_quests : Array[Quest.TYPE]= [Quest.TYPE.ELIMINATION, Quest.TYPE.DELIVERY]
|
||||
const restrictions_foreach_type : Dictionary = {
|
||||
|
|
@ -18,6 +27,7 @@ const restrictions_foreach_type : Dictionary = {
|
|||
}
|
||||
|
||||
func _ready():
|
||||
fetch_modules()
|
||||
randomize()
|
||||
ship.minimap.add_marker(self, "base")
|
||||
match type:
|
||||
|
|
@ -57,16 +67,32 @@ func update_prices():
|
|||
var price : float
|
||||
for item in want_to_sell:
|
||||
if type != Game.BASE_TYPE.TRADING:
|
||||
price = randi_range(item.min_price, item.max_price * 100) / 100.0
|
||||
price = randi_range(item.min_price * 100, item.max_price * 100) / 100.0
|
||||
else:
|
||||
price = randi_range((item.max_price + item.min_price) / 2 * 100, item.max_price * 100) / 100.0
|
||||
sell_prices.append(price)
|
||||
for item in want_to_buy:
|
||||
if type != Game.BASE_TYPE.TRADING:
|
||||
price = randi_range(item.min_price, item.max_price * 100) / 100.0
|
||||
price = randi_range(item.min_price * 100, item.max_price * 100) / 100.0
|
||||
else:
|
||||
price = randi_range(item.min_price * 100, (item.max_price + item.min_price) / 2 * 100) / 100.0
|
||||
buy_prices.append(price)
|
||||
for hull in available_hulls:
|
||||
var item = Game.get_item(hull)
|
||||
price = randi_range(item.min_price * 100, item.max_price * 100) / 100.0
|
||||
hulls_prices[hull] = price
|
||||
for engine in available_engines:
|
||||
var item = Game.get_item(engine)
|
||||
price = randi_range(item.min_price * 100, item.max_price * 100) / 100.0
|
||||
engines_prices[engine] = price
|
||||
for shield in available_shields:
|
||||
var item = Game.get_item(shield)
|
||||
price = randi_range(item.min_price * 100, item.max_price * 100) / 100.0
|
||||
shields_prices[shield] = price
|
||||
for weapon in available_weapons:
|
||||
var item = Game.get_item(weapon)
|
||||
price = randi_range(item.min_price * 100, item.max_price * 100) / 100.0
|
||||
weapons_prices[weapon] = price
|
||||
|
||||
func generate_quest():
|
||||
var difficulty : float = randi_range(100, 300) / 100.0
|
||||
|
|
@ -98,3 +124,33 @@ func generate_quest():
|
|||
reward_multiplier += 0.5
|
||||
reward_money *= reward_multiplier
|
||||
quest.create(quest_type, progress_max, reward_money, restrictions, data)
|
||||
|
||||
## Loads all available modules in memory
|
||||
func fetch_modules():
|
||||
available_hulls.clear()
|
||||
var dir = DirAccess.open("res://scenes/hulls")
|
||||
var modules = dir.get_files()
|
||||
available_hulls = check_for_item(modules)
|
||||
|
||||
available_engines.clear()
|
||||
dir = DirAccess.open("res://scenes/engines")
|
||||
modules = dir.get_files()
|
||||
available_engines = check_for_item(modules)
|
||||
|
||||
available_shields.clear()
|
||||
dir = DirAccess.open("res://scenes/shields")
|
||||
modules = dir.get_files()
|
||||
available_shields = check_for_item(modules)
|
||||
|
||||
available_weapons.clear()
|
||||
dir = DirAccess.open("res://scenes/weapons/presets")
|
||||
modules = dir.get_files()
|
||||
available_weapons = check_for_item(modules)
|
||||
|
||||
func check_for_item(modules : Array[String]) -> Array[String]:
|
||||
var returnable : Array[String] = []
|
||||
for module in modules:
|
||||
var itm = module.trim_suffix(".tscn")
|
||||
if Game.get_item(itm).name != Game.DEFAULT_ITEM.name:
|
||||
returnable.append(itm)
|
||||
return returnable
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue