10.9
This commit is contained in:
parent
2ccb1caec7
commit
a12b8792af
@ -273,6 +273,16 @@ func get_item_data(id:String):
|
|||||||
return ItemTool.re_process_item_data(dictionary)
|
return ItemTool.re_process_item_data(dictionary)
|
||||||
else:
|
else:
|
||||||
return null
|
return null
|
||||||
|
#获取物品名称
|
||||||
|
func get_item_name(id:String):
|
||||||
|
if item_data.has(id):
|
||||||
|
var dictionary:Dictionary=item_data[id]
|
||||||
|
return dictionary["name"]
|
||||||
|
else:
|
||||||
|
return null
|
||||||
|
|
||||||
|
|
||||||
|
pass
|
||||||
#获取词条数据
|
#获取词条数据
|
||||||
func get_word_data(id:String):
|
func get_word_data(id:String):
|
||||||
if word_data.has(id):
|
if word_data.has(id):
|
||||||
|
@ -134,9 +134,12 @@ func load_system_game_data():
|
|||||||
func save_system_game_data():
|
func save_system_game_data():
|
||||||
var f=FileAccess.open(system_game_data_path,FileAccess.WRITE)
|
var f=FileAccess.open(system_game_data_path,FileAccess.WRITE)
|
||||||
f.store_var(system_game_data)
|
f.store_var(system_game_data)
|
||||||
#获取当前游戏内所有物品
|
#获取当前游戏内所有物品的拷贝数据
|
||||||
func get_all_item_game_data()->Array:
|
func get_all_item_game_data()->Array:
|
||||||
return now_game_data["item"].duplicate(true)
|
return now_game_data["item"].duplicate(true)
|
||||||
|
#获取当前游戏内所有物品的非拷贝数据
|
||||||
|
func get_all_item_game_data_not_copy()->Array:
|
||||||
|
return now_game_data["item"]
|
||||||
#根据type获取当前物品
|
#根据type获取当前物品
|
||||||
func get_type_item_game_data(type:int)->Array:
|
func get_type_item_game_data(type:int)->Array:
|
||||||
var item:Array=now_game_data["item"].duplicate(true)
|
var item:Array=now_game_data["item"].duplicate(true)
|
||||||
@ -162,14 +165,17 @@ func replace_equip_with_data(page:int,pos:int,item_data):
|
|||||||
func add_item_to_bag(item_data:Dictionary):
|
func add_item_to_bag(item_data:Dictionary):
|
||||||
var item:Array=now_game_data["item"]
|
var item:Array=now_game_data["item"]
|
||||||
if item_data["allow_merge"]:
|
if item_data["allow_merge"]:
|
||||||
for i in item_data.size():
|
var is_find:bool=false
|
||||||
if item_data[i]["id"]==item_data["id"]:
|
for i in item.size():
|
||||||
if item_data[i].has("num"):
|
if item[i]["id"]==item_data["id"]:
|
||||||
item_data[i]["num"]+=1
|
is_find=true
|
||||||
|
if item[i].has("num"):
|
||||||
|
item[i]["num"]+=1
|
||||||
else:
|
else:
|
||||||
item_data[i]["num"]=2
|
item[i]["num"]=2
|
||||||
|
|
||||||
pass
|
if not is_find:
|
||||||
|
item.append(item_data)
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
item.append(item_data)
|
item.append(item_data)
|
||||||
@ -189,7 +195,7 @@ func decrease_item_num_index(ind:int,num:int=1):
|
|||||||
#根据ID减少在背包内的物品
|
#根据ID减少在背包内的物品
|
||||||
func decrease_item_num_id(id:String,num:int=1)->bool:
|
func decrease_item_num_id(id:String,num:int=1)->bool:
|
||||||
var item:Array=now_game_data["item"]
|
var item:Array=now_game_data["item"]
|
||||||
var item_data:Dictionary
|
var item_data
|
||||||
var ind:int
|
var ind:int
|
||||||
for i in item.size():
|
for i in item.size():
|
||||||
if item[i]["id"]==id:
|
if item[i]["id"]==id:
|
||||||
@ -213,7 +219,7 @@ func decrease_item_num_id(id:String,num:int=1)->bool:
|
|||||||
#通过id获取当前背包数量(如果是不允许合并的物品则返回1(有)或者0(没有))
|
#通过id获取当前背包数量(如果是不允许合并的物品则返回1(有)或者0(没有))
|
||||||
func get_item_by_id(id:String)->int:
|
func get_item_by_id(id:String)->int:
|
||||||
var item:Array=now_game_data["item"]
|
var item:Array=now_game_data["item"]
|
||||||
var item_data:Dictionary
|
var item_data
|
||||||
var ind:int
|
var ind:int
|
||||||
for i in item.size():
|
for i in item.size():
|
||||||
if item[i]["id"]==id:
|
if item[i]["id"]==id:
|
||||||
@ -224,6 +230,7 @@ func get_item_by_id(id:String)->int:
|
|||||||
if item_data.has("num"):
|
if item_data.has("num"):
|
||||||
return item_data["num"]
|
return item_data["num"]
|
||||||
else:
|
else:
|
||||||
|
print(item_data)
|
||||||
return 1
|
return 1
|
||||||
else:
|
else:
|
||||||
return 0
|
return 0
|
||||||
@ -468,7 +475,9 @@ var triger:Dictionary={
|
|||||||
#鉴定触发器
|
#鉴定触发器
|
||||||
"show_identifaction":func(data):show_identification(data),
|
"show_identifaction":func(data):show_identification(data),
|
||||||
#拍卖触发器
|
#拍卖触发器
|
||||||
"show_auction":func(data):show_auction(data)
|
"show_auction":func(data):show_auction(data),
|
||||||
|
#装备升级界面展示触发器
|
||||||
|
"show_level_up":func (data):now_game_flow.show_item_level_up()
|
||||||
}
|
}
|
||||||
#使用事件触发器
|
#使用事件触发器
|
||||||
func call_triger(triger_type:String,data):
|
func call_triger(triger_type:String,data):
|
||||||
|
@ -34,6 +34,8 @@ static func re_process_item_data(item_data:Dictionary):
|
|||||||
for i in word_num:
|
for i in word_num:
|
||||||
word_arr.append(get_rand_value_weight(word_lib))
|
word_arr.append(get_rand_value_weight(word_lib))
|
||||||
new_item_data["word"]=word_arr
|
new_item_data["word"]=word_arr
|
||||||
|
if item_data.has("level_up_need_material"):
|
||||||
|
item_data["level"]=0
|
||||||
return new_item_data
|
return new_item_data
|
||||||
static func get_weight(qalib:Dictionary):
|
static func get_weight(qalib:Dictionary):
|
||||||
return qalib["weight"]
|
return qalib["weight"]
|
||||||
@ -62,24 +64,24 @@ static func get_name_from_item_data(item_data:Dictionary)->String:
|
|||||||
#劣质 普通 优秀 稀有 史诗 传说 无双
|
#劣质 普通 优秀 稀有 史诗 传说 无双
|
||||||
match quility:
|
match quility:
|
||||||
0:
|
0:
|
||||||
return n+"(劣质)"
|
n+="(劣质)"
|
||||||
1:
|
1:
|
||||||
return n+"(普通)"
|
n+="(普通)"
|
||||||
2:
|
2:
|
||||||
return n+"(优秀)"
|
n+="(优秀)"
|
||||||
3:
|
3:
|
||||||
return n+"(稀有)"
|
n+="(稀有)"
|
||||||
4:
|
4:
|
||||||
return n+"(史诗)"
|
n+="(史诗)"
|
||||||
5:
|
5:
|
||||||
return n+"(传说)"
|
n+="(传说)"
|
||||||
6:
|
6:
|
||||||
return n+"(无双)"
|
n+="(无双)"
|
||||||
_:
|
_:
|
||||||
return n
|
pass
|
||||||
else:
|
if item_data.has("level") and item_data["level"]!=0:
|
||||||
return n
|
n+="+"+str(item_data["level"])
|
||||||
pass
|
return n
|
||||||
static func get_introduction_from_item_data(item_data:Dictionary)->String:
|
static func get_introduction_from_item_data(item_data:Dictionary)->String:
|
||||||
var res:String=""
|
var res:String=""
|
||||||
if item_data.has("word"):
|
if item_data.has("word"):
|
||||||
@ -102,3 +104,33 @@ static func get_item_attribute_basic(item_data:Dictionary):
|
|||||||
return item_data["attribute"].duplicate()
|
return item_data["attribute"].duplicate()
|
||||||
else:
|
else:
|
||||||
return {}
|
return {}
|
||||||
|
#item是否可以升级
|
||||||
|
static func could_item_level_up(item_data:Dictionary):
|
||||||
|
if item_data.has("quality"):
|
||||||
|
var quality:int=item_data["quality"]
|
||||||
|
if quality==0 ||quality==6:
|
||||||
|
return false
|
||||||
|
if not item_data.has("level_up_need_material"):
|
||||||
|
return false
|
||||||
|
var level_up_need_material=item_data["level_up_need_material"]
|
||||||
|
if not level_up_need_material.has(str(quality)):
|
||||||
|
return false
|
||||||
|
if not item_data.has("level"):
|
||||||
|
return false
|
||||||
|
var now_level:int=item_data["level"]
|
||||||
|
|
||||||
|
var max_level_arr=[0,5,5,3,3,3,0]
|
||||||
|
var max_level=max_level_arr[quality]
|
||||||
|
if now_level>=max_level:
|
||||||
|
return false
|
||||||
|
else:
|
||||||
|
return true
|
||||||
|
else:
|
||||||
|
return false
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
#获取当前item升级所需材料
|
||||||
|
static func get_item_level_up_need(item_data:Dictionary):
|
||||||
|
return item_data["level_up_need_material"][str(item_data["quality"])].duplicate(true)
|
||||||
|
@ -204,7 +204,7 @@
|
|||||||
"auction_test":{
|
"auction_test":{
|
||||||
"name":"拍卖测试事件",
|
"name":"拍卖测试事件",
|
||||||
"texture":"test_scene",
|
"texture":"test_scene",
|
||||||
"text":"这是一个测试鉴定系统的事件",
|
"text":"这是一个测试拍卖系统的事件",
|
||||||
"choice":[
|
"choice":[
|
||||||
{
|
{
|
||||||
"name":"拍卖",
|
"name":"拍卖",
|
||||||
@ -232,5 +232,32 @@
|
|||||||
},]
|
},]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"item_level_up_test":{
|
||||||
|
"name":"升级测试事件",
|
||||||
|
"texture":"test_scene",
|
||||||
|
"text":"这是一个测试装备升级系统的事件",
|
||||||
|
"choice":[
|
||||||
|
{
|
||||||
|
"name":"升级",
|
||||||
|
"triger":[
|
||||||
|
{
|
||||||
|
"type":"show_level_up",
|
||||||
|
"data":""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"end_event",
|
||||||
|
"data":""
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"结束",
|
||||||
|
"triger":[{
|
||||||
|
"type":"end_event",
|
||||||
|
"data":""
|
||||||
|
},]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,17 @@
|
|||||||
"attribute":{
|
"attribute":{
|
||||||
"AGI":100
|
"AGI":100
|
||||||
},
|
},
|
||||||
|
"level_add_attribute":{
|
||||||
|
|
||||||
|
},
|
||||||
|
"level_up_need_material":{
|
||||||
|
"4":{
|
||||||
|
"item_06":5
|
||||||
|
},
|
||||||
|
"5":{
|
||||||
|
"item_06":10
|
||||||
|
}
|
||||||
|
},
|
||||||
"quality_lib":[
|
"quality_lib":[
|
||||||
{
|
{
|
||||||
"value":4,
|
"value":4,
|
||||||
@ -27,14 +38,12 @@
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
"texture":"issuing",
|
"texture":"issuing",
|
||||||
"name":"发卡(测试饰品)",
|
"name":"发卡",
|
||||||
"introduction":"用于测试的饰品装备,并没有什么用(现测试用于钓鱼)",
|
"introduction":"用于测试的饰品装备,并没有什么用(现测试用于钓鱼)",
|
||||||
"identification":{
|
"identification":{
|
||||||
"AGI":100
|
"AGI":100
|
||||||
},
|
},
|
||||||
"material":{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
},
|
||||||
"item_02":{
|
"item_02":{
|
||||||
@ -153,6 +162,7 @@
|
|||||||
],
|
],
|
||||||
"name":"绷带",
|
"name":"绷带",
|
||||||
"introduction":"用于测试的道具,并没有什么用",
|
"introduction":"用于测试的道具,并没有什么用",
|
||||||
|
"texture":"bandage",
|
||||||
"material":{
|
"material":{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
},
|
},
|
||||||
"npc_02":{
|
"npc_02":{
|
||||||
"name":"测试NPC2",
|
"name":"测试NPC2",
|
||||||
"sold_item":["item_03","item_04"],
|
"sold_item":["item_03","item_04","item_06","item_06","item_06","item_06","item_06","item_06","item_06",],
|
||||||
"init_favor":0,
|
"init_favor":0,
|
||||||
"gold":7777
|
"gold":7777
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,10 @@
|
|||||||
{
|
{
|
||||||
"name":"拍卖测试",
|
"name":"拍卖测试",
|
||||||
"event":"auction_test"
|
"event":"auction_test"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"升级测试",
|
||||||
|
"event":"item_level_up_test"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"linked_scene":[{
|
"linked_scene":[{
|
||||||
|
6
scene/ability_to_card_need.gd
Normal file
6
scene/ability_to_card_need.gd
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
extends TextureRect
|
||||||
|
|
||||||
|
func set_text(str:String):
|
||||||
|
$Label.text=str
|
||||||
|
func set_color(color:Color):
|
||||||
|
$Label.add_theme_color_override("font_color",color)
|
@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://dbb1aw7idwsqu"]
|
[gd_scene load_steps=3 format=3 uid="uid://dbb1aw7idwsqu"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://cax0m4frsh2pd" path="res://res/ui/ui_022_ability_to_cards/tuceng327.png" id="1_866xd"]
|
[ext_resource type="Texture2D" uid="uid://cax0m4frsh2pd" path="res://res/ui/ui_022_ability_to_cards/tuceng327.png" id="1_866xd"]
|
||||||
|
[ext_resource type="Script" path="res://scene/ability_to_card_need.gd" id="2_mjycf"]
|
||||||
|
|
||||||
[node name="ability_to_card_need" type="TextureRect"]
|
[node name="ability_to_card_need" type="TextureRect"]
|
||||||
offset_right = 40.0
|
offset_right = 40.0
|
||||||
@ -8,6 +9,7 @@ offset_bottom = 40.0
|
|||||||
size_flags_horizontal = 0
|
size_flags_horizontal = 0
|
||||||
size_flags_vertical = 0
|
size_flags_vertical = 0
|
||||||
texture = ExtResource("1_866xd")
|
texture = ExtResource("1_866xd")
|
||||||
|
script = ExtResource("2_mjycf")
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
@ -11,7 +11,6 @@ var data:Dictionary={
|
|||||||
}
|
}
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
set_data(Database.get_item_data("item_01"))
|
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,3 +9,4 @@ func _ready() -> void:
|
|||||||
|
|
||||||
%bag_card_introduction.text=ItemTool.get_introduction_from_item_data(data)
|
%bag_card_introduction.text=ItemTool.get_introduction_from_item_data(data)
|
||||||
get_parent().add_theme_stylebox_override("panel",StyleBoxEmpty.new())
|
get_parent().add_theme_stylebox_override("panel",StyleBoxEmpty.new())
|
||||||
|
print(%bag_card_name.text)
|
||||||
|
@ -59,6 +59,8 @@ layout_mode = 0
|
|||||||
anchor_left = 0.180628
|
anchor_left = 0.180628
|
||||||
anchor_right = 0.913613
|
anchor_right = 0.913613
|
||||||
anchor_bottom = 0.212
|
anchor_bottom = 0.212
|
||||||
|
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_constants/outline_size = 5
|
||||||
theme_override_font_sizes/font_size = 27
|
theme_override_font_sizes/font_size = 27
|
||||||
text = "物品名"
|
text = "物品名"
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
16
scene/equipment.gd
Normal file
16
scene/equipment.gd
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
extends Label
|
||||||
|
|
||||||
|
|
||||||
|
signal item_selected(index:int)
|
||||||
|
|
||||||
|
|
||||||
|
@export var index:int=0
|
||||||
|
func _can_drop_data(at_position: Vector2, data: Variant) -> bool:
|
||||||
|
return true
|
||||||
|
func _drop_data(at_position: Vector2, data: Variant) -> void:
|
||||||
|
#Global.replace_equip_with_data(page,index,data)
|
||||||
|
#Global.decrease_item_num_index(data["ind"])
|
||||||
|
index=data["ind"]
|
||||||
|
item_selected.emit(index)
|
||||||
|
pass
|
||||||
|
|
@ -146,3 +146,9 @@ func show_auction(npc_id_array:Array,item_id_array:Array):
|
|||||||
var item_data=Database.get_item_data(i)
|
var item_data=Database.get_item_data(i)
|
||||||
item_data_arr.append(item_data)
|
item_data_arr.append(item_data)
|
||||||
%auction.set_npc_arr_and_item_arr(npc_data_arr,item_data_arr)
|
%auction.set_npc_arr_and_item_arr(npc_data_arr,item_data_arr)
|
||||||
|
|
||||||
|
func show_item_level_up():
|
||||||
|
|
||||||
|
%item_level_up.show()
|
||||||
|
%item_level_up.fresh()
|
||||||
|
pass
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=30 format=3 uid="uid://bht5sd88340s5"]
|
[gd_scene load_steps=31 format=3 uid="uid://bht5sd88340s5"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://5vyvaedcfv38" path="res://res/ui/ui_019_game_flow/tuceng1.png" id="1_gjw3y"]
|
[ext_resource type="Texture2D" uid="uid://5vyvaedcfv38" path="res://res/ui/ui_019_game_flow/tuceng1.png" id="1_gjw3y"]
|
||||||
[ext_resource type="Script" path="res://scene/game_flow.gd" id="1_w6afk"]
|
[ext_resource type="Script" path="res://scene/game_flow.gd" id="1_w6afk"]
|
||||||
@ -23,6 +23,7 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://ln0ri824gh2c" path="res://scene/save_and_load.tscn" id="21_2j45w"]
|
[ext_resource type="PackedScene" uid="uid://ln0ri824gh2c" path="res://scene/save_and_load.tscn" id="21_2j45w"]
|
||||||
[ext_resource type="PackedScene" uid="uid://mcf2riinvukc" path="res://scene/single_identification.tscn" id="22_0wbgg"]
|
[ext_resource type="PackedScene" uid="uid://mcf2riinvukc" path="res://scene/single_identification.tscn" id="22_0wbgg"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cykq0nd4y57xe" path="res://scene/auction.tscn" id="23_mavou"]
|
[ext_resource type="PackedScene" uid="uid://cykq0nd4y57xe" path="res://scene/auction.tscn" id="23_mavou"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0xgo1tguum73" path="res://scene/item_level_up.tscn" id="24_7ni35"]
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_4wq1v"]
|
[sub_resource type="Gradient" id="Gradient_4wq1v"]
|
||||||
|
|
||||||
@ -472,6 +473,11 @@ unique_name_in_owner = true
|
|||||||
visible = false
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
||||||
|
[node name="item_level_up" parent="." instance=ExtResource("24_7ni35")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
[connection signal="pressed" from="hbox/TextureRect/head_btn" to="." method="_on_head_btn_pressed"]
|
[connection signal="pressed" from="hbox/TextureRect/head_btn" to="." method="_on_head_btn_pressed"]
|
||||||
[connection signal="pressed" from="HBoxContainer/TextureRect/save" to="." method="_on_save_pressed"]
|
[connection signal="pressed" from="HBoxContainer/TextureRect/save" to="." method="_on_save_pressed"]
|
||||||
[connection signal="pressed" from="HBoxContainer/TextureRect2/load" to="." method="_on_load_pressed"]
|
[connection signal="pressed" from="HBoxContainer/TextureRect2/load" to="." method="_on_load_pressed"]
|
||||||
|
70
scene/item_level_up.gd
Normal file
70
scene/item_level_up.gd
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
extends Control
|
||||||
|
var now_select_item_index:int=-1
|
||||||
|
const BAG_SIDE_CARD = preload("res://scene/bag_side_card.tscn")
|
||||||
|
const ABILITY_TO_CARD_NEED = preload("res://scene/ability_to_card_need.tscn")
|
||||||
|
func fresh():
|
||||||
|
%level_up.disable(true)
|
||||||
|
var all_item=Global.get_all_item_game_data()
|
||||||
|
for i in %bag_side_card_add_pos.get_children():
|
||||||
|
i.queue_free()
|
||||||
|
for i in %need_add_pos.get_children():
|
||||||
|
i.queue_free()
|
||||||
|
for i in all_item.size():
|
||||||
|
if ItemTool.could_item_level_up(all_item[i]):
|
||||||
|
var new_card=BAG_SIDE_CARD.instantiate()
|
||||||
|
%bag_side_card_add_pos.add_child(new_card)
|
||||||
|
new_card.set_data(all_item[i])
|
||||||
|
new_card.equip_index=i
|
||||||
|
if now_select_item_index>=0:
|
||||||
|
%level_up.disable(false)
|
||||||
|
var selected_item_data=Global.get_all_item_game_data()[now_select_item_index]
|
||||||
|
%selected_face.texture=Database.get_texture(selected_item_data["texture"])
|
||||||
|
var level_up_need_material=ItemTool.get_item_level_up_need(selected_item_data)
|
||||||
|
for i in level_up_need_material.keys():
|
||||||
|
var new_need=ABILITY_TO_CARD_NEED.instantiate()
|
||||||
|
%need_add_pos.add_child(new_need)
|
||||||
|
var now_item_num=Global.get_item_by_id(i)
|
||||||
|
var need_num:int=level_up_need_material[i]
|
||||||
|
if now_item_num<need_num:
|
||||||
|
new_need.set_color(Color.RED)
|
||||||
|
%level_up.disable(true)
|
||||||
|
new_need.set_text(Database.get_item_name(i)+":"+str(now_item_num)+"/"+str(need_num))
|
||||||
|
pass
|
||||||
|
func _ready() -> void:
|
||||||
|
fresh()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_close_pressed() -> void:
|
||||||
|
|
||||||
|
self.hide()
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
func _on_level_item_selected(index: int) -> void:
|
||||||
|
now_select_item_index=index
|
||||||
|
fresh()
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
func _on_level_up_pressed() -> void:
|
||||||
|
if now_select_item_index>=0:
|
||||||
|
var selected_item_data=Global.get_all_item_game_data_not_copy()[now_select_item_index]
|
||||||
|
var level_up_need_material=ItemTool.get_item_level_up_need(selected_item_data)
|
||||||
|
var could_level_up:bool=true
|
||||||
|
for i in level_up_need_material.keys():
|
||||||
|
var now_item_num=Global.get_item_by_id(i)
|
||||||
|
var need_num:int=level_up_need_material[i]
|
||||||
|
if need_num>now_item_num:
|
||||||
|
could_level_up=false
|
||||||
|
break
|
||||||
|
if could_level_up:
|
||||||
|
for i in level_up_need_material.keys():
|
||||||
|
var need_num:int=level_up_need_material[i]
|
||||||
|
Global.decrease_item_num_id(i,need_num)
|
||||||
|
var before_level:int=0
|
||||||
|
if selected_item_data.has("level"):
|
||||||
|
before_level=selected_item_data["level"]
|
||||||
|
|
||||||
|
selected_item_data["level"]=before_level+1
|
||||||
|
fresh()
|
||||||
|
pass # Replace with function body.
|
207
scene/item_level_up.tscn
Normal file
207
scene/item_level_up.tscn
Normal file
@ -0,0 +1,207 @@
|
|||||||
|
[gd_scene load_steps=10 format=3 uid="uid://b0xgo1tguum73"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dli3olhy3gf33" path="res://res/ui/ui_031_auction/tuceng384.png" id="1_0l7tc"]
|
||||||
|
[ext_resource type="Script" path="res://scene/item_level_up.gd" id="1_6q1tj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dfhx4088ydrme" path="res://scene/bag_side_card.tscn" id="2_po3t1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bsy0yv6edtsmw" path="res://res/ui/ui_009_skill_config/tuceng1.png" id="3_sgsks"]
|
||||||
|
[ext_resource type="Script" path="res://scene/equipment.gd" id="4_dp26x"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dbb1aw7idwsqu" path="res://scene/ability_to_card_need.tscn" id="5_mmyo6"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://brsla1fva3fsy" path="res://res/ui/ui_022_ability_to_cards/tuceng301.png" id="6_pqdty"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bdlo2wn4qnygv" path="res://scene/tool/tool_button.tscn" id="7_sutp7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c3nm3avrqj4pf" path="res://res/ui/ui_031_auction/tuceng385.png" id="9_3c38o"]
|
||||||
|
|
||||||
|
[node name="item_level_up" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_6q1tj")
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
texture = ExtResource("1_0l7tc")
|
||||||
|
expand_mode = 1
|
||||||
|
stretch_mode = 6
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.513021
|
||||||
|
anchor_top = 0.117593
|
||||||
|
anchor_right = 0.947396
|
||||||
|
anchor_bottom = 0.862037
|
||||||
|
offset_left = 6.10352e-05
|
||||||
|
theme_override_constants/separation = 115
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="HBoxContainer"]
|
||||||
|
custom_minimum_size = Vector2(114, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
|
horizontal_scroll_mode = 0
|
||||||
|
vertical_scroll_mode = 3
|
||||||
|
|
||||||
|
[node name="bag_side_card_add_pos" type="GridContainer" parent="HBoxContainer/ScrollContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme_override_constants/h_separation = 30
|
||||||
|
theme_override_constants/v_separation = 30
|
||||||
|
columns = 6
|
||||||
|
|
||||||
|
[node name="bag_side_card" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card2" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card3" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card4" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card5" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card6" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card7" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card8" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card9" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card10" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card11" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="bag_side_card12" parent="HBoxContainer/ScrollContainer/bag_side_card_add_pos" instance=ExtResource("2_po3t1")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="TextureRect3" type="NinePatchRect" parent="."]
|
||||||
|
clip_contents = true
|
||||||
|
custom_minimum_size = Vector2(0, 204)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 233.0
|
||||||
|
offset_top = 131.0
|
||||||
|
offset_right = 680.0
|
||||||
|
offset_bottom = 533.0
|
||||||
|
size_flags_vertical = 0
|
||||||
|
texture = ExtResource("3_sgsks")
|
||||||
|
|
||||||
|
[node name="selected_face" type="TextureRect" parent="TextureRect3"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
expand_mode = 1
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
|
[node name="level" type="Label" parent="TextureRect3"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 1
|
||||||
|
theme_override_colors/font_color = Color(1, 1, 1, 1)
|
||||||
|
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||||
|
theme_override_constants/outline_size = 4
|
||||||
|
theme_override_font_sizes/font_size = 31
|
||||||
|
text = "+0"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 2
|
||||||
|
script = ExtResource("4_dp26x")
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="need_add_pos" type="VBoxContainer" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.121354
|
||||||
|
anchor_top = 0.55
|
||||||
|
anchor_right = 0.297396
|
||||||
|
anchor_bottom = 0.827778
|
||||||
|
size_flags_vertical = 0
|
||||||
|
theme_override_constants/separation = 15
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="ability_to_card_need" parent="need_add_pos" instance=ExtResource("5_mmyo6")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ability_to_card_need2" parent="need_add_pos" instance=ExtResource("5_mmyo6")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ability_to_card_need3" parent="need_add_pos" instance=ExtResource("5_mmyo6")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ability_to_card_need4" parent="need_add_pos" instance=ExtResource("5_mmyo6")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ability_to_card_need5" parent="need_add_pos" instance=ExtResource("5_mmyo6")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="TextureRect2" type="TextureRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.121354
|
||||||
|
anchor_top = 0.869444
|
||||||
|
anchor_right = 0.229167
|
||||||
|
anchor_bottom = 0.92037
|
||||||
|
offset_bottom = -6.10352e-05
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 10
|
||||||
|
texture = ExtResource("6_pqdty")
|
||||||
|
metadata/_edit_use_anchors_ = true
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TextureRect2"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "升级"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="level_up" parent="TextureRect2" instance=ExtResource("7_sutp7")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
|
[node name="TextureRect4" type="TextureRect" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 1
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_left = -40.0
|
||||||
|
offset_bottom = 40.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
texture = ExtResource("9_3c38o")
|
||||||
|
|
||||||
|
[node name="close" parent="TextureRect4" instance=ExtResource("7_sutp7")]
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
|
[connection signal="item_selected" from="TextureRect3/level" to="." method="_on_level_item_selected"]
|
||||||
|
[connection signal="pressed" from="TextureRect2/level_up" to="." method="_on_level_up_pressed"]
|
||||||
|
[connection signal="pressed" from="TextureRect4/close" to="." method="_on_close_pressed"]
|
@ -118,10 +118,10 @@ func add_item_to_npc(item_data:Dictionary):
|
|||||||
|
|
||||||
func dec_item_from_npc(ind:int):
|
func dec_item_from_npc(ind:int):
|
||||||
if npc_data["sold_item"][ind].has("num"):
|
if npc_data["sold_item"][ind].has("num"):
|
||||||
if npc_data["sold_item"]["num"]<=1:
|
if npc_data["sold_item"][ind]["num"]<=1:
|
||||||
npc_data["sold_item"].pop_at(ind)
|
npc_data["sold_item"].pop_at(ind)
|
||||||
else:
|
else:
|
||||||
npc_data["sold_item"]["num"]-=1
|
npc_data["sold_item"][ind]["num"]-=1
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
npc_data["sold_item"].pop_at(ind)
|
npc_data["sold_item"].pop_at(ind)
|
||||||
|
@ -8,7 +8,11 @@ func set_item(item_data:Dictionary):
|
|||||||
data=item_data
|
data=item_data
|
||||||
%face.texture=Database.get_texture(data["texture"])
|
%face.texture=Database.get_texture(data["texture"])
|
||||||
%price.text="价格:"+str(int(data["price"]*discount))
|
%price.text="价格:"+str(int(data["price"]*discount))
|
||||||
|
if data.has("num"):
|
||||||
|
%num.show()
|
||||||
|
%num.text=str(data["num"])
|
||||||
|
else:
|
||||||
|
%num.hide()
|
||||||
|
|
||||||
func _on_trade_card_btn_spec_pressed() -> void:
|
func _on_trade_card_btn_spec_pressed() -> void:
|
||||||
click.emit()
|
click.emit()
|
||||||
|
@ -53,6 +53,21 @@ text = "价格:100"
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="num" type="Label" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 1
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_left = -83.8134
|
||||||
|
offset_right = -17.8134
|
||||||
|
offset_bottom = 45.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
theme_override_font_sizes/font_size = 24
|
||||||
|
text = "0"
|
||||||
|
horizontal_alignment = 2
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
[node name="trade_card_btn_spec" type="Button" parent="."]
|
[node name="trade_card_btn_spec" type="Button" parent="."]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
Loading…
Reference in New Issue
Block a user