feature/list-object-counter (#60)
Co-authored-by: VAILLANT Jeremy <vaillant.jeremy@dev-crea.com> Reviewed-on: Athena/game-source#60 Co-authored-by: darknight <vaillant.jeremy@dev-crea.com> Co-committed-by: darknight <vaillant.jeremy@dev-crea.com>
This commit is contained in:
+26
-13
@@ -11,20 +11,31 @@ onready var table = Global.database.get_table_by_name("scenes")
|
||||
onready var meshes = {}
|
||||
onready var from = null
|
||||
onready var to = null
|
||||
onready var mlevel = load("res://db/MLevel.gd")
|
||||
onready var mscene = load("res://db/MScene.gd")
|
||||
onready var victory_condition = 0
|
||||
onready var victory_progress = 0
|
||||
|
||||
func _ready():
|
||||
_load_translations()
|
||||
_load_meshes()
|
||||
_prepare_victory_condition()
|
||||
|
||||
func _prepare_victory_condition():
|
||||
var level = mlevel.new(Global.current_scene_int)
|
||||
|
||||
victory_condition = level.object_to_find()
|
||||
victory_progress = level.object_finding()
|
||||
|
||||
func _process(_delta):
|
||||
_check_dissolve_mesh()
|
||||
_check_change_angle_camera()
|
||||
_check_victory_condition()
|
||||
|
||||
func _check_dissolve_mesh():
|
||||
# Event dissolve in object searched by gamer
|
||||
for key in meshes:
|
||||
if meshes[key].lock() == true and meshes[key].mesh() != null:
|
||||
if bool(meshes[key].lock()) == true and meshes[key].mesh() != null:
|
||||
if meshes[key].tick_reference() == 0:
|
||||
meshes[key].set_tick_reference(OS.get_ticks_msec())
|
||||
|
||||
@@ -32,15 +43,10 @@ func _check_dissolve_mesh():
|
||||
meshes[key].set_value(meshes[key].value() + 0.01)
|
||||
_node_to_mesh(key).get_surface_material(0).set("shader_param/dissolve_amount", meshes[key].value())
|
||||
else:
|
||||
victory_progress = mlevel.new(Global.current_scene_int).object_finding()
|
||||
_node_to_mesh(key).call_deferred("free")
|
||||
meshes[key].set_mesh(null)
|
||||
|
||||
func _node_to_mesh(key):
|
||||
return get_node(meshes[key].mesh())
|
||||
|
||||
func _node_to_area(key):
|
||||
return get_node(meshes[key].mesh()+"/Area")
|
||||
|
||||
func _check_change_angle_camera():
|
||||
var camera = $"Main Camera"
|
||||
var gyroscope = Input.get_gyroscope()
|
||||
@@ -104,12 +110,22 @@ func _gyroscope_changed_up(gyroscope):
|
||||
gyroscope.x < gyroscope_value_old.x
|
||||
|
||||
func _start_dissolve(key):
|
||||
if meshes[key].lock() == false:
|
||||
meshes[key].set_lock(true)
|
||||
if bool(meshes[key].lock()) == false:
|
||||
meshes[key].set_lock(int(true))
|
||||
$ObjectFind.stream = meshes[key].audio_sound()
|
||||
$ObjectFind.play()
|
||||
|
||||
## PRIVATE
|
||||
func _check_victory_condition():
|
||||
if victory_condition == victory_progress:
|
||||
print("[levels#_check_victory_condition] \\o/")
|
||||
Global.goto_scene("res://scenes/UI/ending.tscn")
|
||||
|
||||
func _node_to_mesh(key):
|
||||
return get_node(meshes[key].mesh())
|
||||
|
||||
func _node_to_area(key):
|
||||
return get_node(meshes[key].mesh()+"/Area")
|
||||
|
||||
func _load_translations():
|
||||
pass
|
||||
|
||||
@@ -122,9 +138,6 @@ func _load_meshes():
|
||||
if scene_detail.key() != null:
|
||||
meshes[scene_detail.key()] = scene_detail
|
||||
|
||||
for key in meshes:
|
||||
meshes[key].search_keys()
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventMouseButton or event is InputEventScreenTouch:
|
||||
var camera = $"Main Camera"
|
||||
|
||||
@@ -13,33 +13,30 @@ func _ready():
|
||||
func _display_hud_menu():
|
||||
var counter = 0
|
||||
var scene = null
|
||||
var label_id = null
|
||||
var label_counter = null
|
||||
|
||||
for key in meshes:
|
||||
scene = meshes[key]
|
||||
_create_button_info(scene, counter, label_id)
|
||||
label_id = scene.label_id()
|
||||
counter = +1
|
||||
_create_button_info(scene, counter, label_counter)
|
||||
label_counter = scene.label_counter()
|
||||
counter = counter + 1
|
||||
|
||||
# Back to main scene
|
||||
func _on_TextureButton_pressed():
|
||||
Global.goto_scene("res://scenes/main.tscn")
|
||||
|
||||
func _create_button_info(scene, counter, label_id):
|
||||
func _create_button_info(scene, counter, label_counter):
|
||||
var btn = null
|
||||
|
||||
if counter == 0:
|
||||
btn = object_first.instance()
|
||||
#print("[warCraft#_create_button_info] ["+String(counter)+"] use first")
|
||||
elif counter == meshes.size() - 1:
|
||||
btn = object_last.instance()
|
||||
#print("[warCraft#_create_button_info] ["+String(counter)+"] use last")
|
||||
else:
|
||||
btn = object_std.instance()
|
||||
#print("[warCraft#_create_button_info] ["+String(counter)+"] use standar")
|
||||
|
||||
if label_id != null and label_id == scene.label_id():
|
||||
last_btn.get_node("Label").set_text(last_btn.get_node("Label").text + " X")
|
||||
if label_counter != null and label_counter == scene.label_counter():
|
||||
last_btn.get_node("Label").set_text(last_btn.get_node("Label").text + " " + String(scene.counter()))
|
||||
else:
|
||||
$ListObjects/ListContainer.add_child(btn)
|
||||
btn.get_node("Label").set_text(scene.label())
|
||||
|
||||
@@ -270,7 +270,7 @@ cell_center_y = false
|
||||
cell_center_z = false
|
||||
baked_meshes = [ SubResource( 4 ) ]
|
||||
data = {
|
||||
"cells": PoolIntArray( 0, 0, 0, 65531, 0, 3, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 0, 0, 1, 0, 65531, 1, 3, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 0, 2, 0, 65531, 2, 3, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 0, 65533, 0, 65532, 65533, 0, 65533, 65533, 0, 65534, 65533, 0, 65535, 65533, 0, 0, 65534, 0, 65531, 65534, 3, 65532, 65534, 0, 65533, 65534, 0, 65534, 65534, 0, 65535, 65534, 0, 0, 65535, 0, 65531, 65535, 3, 65532, 65535, 0, 65533, 65535, 0, 65534, 65535, 0, 65535, 65535, 0 )
|
||||
"cells": PoolIntArray( 0, 0, 0, 65531, 0, -1610612733, 65532, 0, 0, 65533, 0, -1610612736, 65534, 0, 0, 65535, 0, 0, 0, 1, 0, 65531, 1, 3, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 0, 2, 0, 65531, 2, 3, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 0, 65533, 0, 65532, 65533, 0, 65533, 65533, 0, 65534, 65533, 0, 65535, 65533, 0, 0, 65534, 0, 65531, 65534, 3, 65532, 65534, 0, 65533, 65534, 0, 65534, 65534, 0, 65535, 65534, 0, 0, 65535, 0, 65531, 65535, 1073741827, 65532, 65535, 0, 65533, 65535, 0, 65534, 65535, 0, 65535, 65535, 0 )
|
||||
}
|
||||
__meta__ = {
|
||||
"_editor_clip_": 0,
|
||||
|
||||
Reference in New Issue
Block a user