| @@ -1,18 +1,22 @@ | |||||
| [gd_scene load_steps=2 format=2] | |||||
| [gd_scene load_steps=3 format=2] | |||||
| [ext_resource path="res://jrpg/fonts/puritan.tres" type="DynamicFont" id=1] | [ext_resource path="res://jrpg/fonts/puritan.tres" type="DynamicFont" id=1] | ||||
| [ext_resource path="res://jrpg/scripts/levels/game_over_scene.gd" type="Script" id=2] | |||||
| [node name="TestGameOver" type="Control"] | [node name="TestGameOver" type="Control"] | ||||
| anchor_right = 1.0 | anchor_right = 1.0 | ||||
| anchor_bottom = 1.0 | anchor_bottom = 1.0 | ||||
| script = ExtResource( 2 ) | |||||
| __meta__ = { | __meta__ = { | ||||
| "_edit_use_anchors_": false | "_edit_use_anchors_": false | ||||
| } | } | ||||
| [node name="Label" type="Label" parent="."] | |||||
| [node name="Button" type="Button" parent="."] | |||||
| anchor_right = 1.0 | anchor_right = 1.0 | ||||
| anchor_bottom = 1.0 | anchor_bottom = 1.0 | ||||
| custom_fonts/font = ExtResource( 1 ) | custom_fonts/font = ExtResource( 1 ) | ||||
| text = "Game Over" | text = "Game Over" | ||||
| align = 1 | |||||
| valign = 1 | |||||
| __meta__ = { | |||||
| "_edit_use_anchors_": false | |||||
| } | |||||
| [connection signal="pressed" from="Button" to="." method="_on_Button_pressed"] | |||||
| @@ -1,7 +1,7 @@ | |||||
| [gd_scene load_steps=29 format=2] | |||||
| [gd_scene load_steps=30 format=2] | |||||
| [ext_resource path="res://jrpg/scripts/levels/spawner.gd" type="Script" id=1] | [ext_resource path="res://jrpg/scripts/levels/spawner.gd" type="Script" id=1] | ||||
| [ext_resource path="res://addons/yarn_spinner/yarn_runner_node.gd" type="Script" id=2] | |||||
| [ext_resource path="res://jrpg/yarn_scripts/test_start.yarn" type="Resource" id=2] | |||||
| [ext_resource path="res://jrpg/scenes/entities/Pickup.tscn" type="PackedScene" id=3] | [ext_resource path="res://jrpg/scenes/entities/Pickup.tscn" type="PackedScene" id=3] | ||||
| [ext_resource path="res://jrpg/yarn_scripts/event1.yarn" type="Resource" id=4] | [ext_resource path="res://jrpg/yarn_scripts/event1.yarn" type="Resource" id=4] | ||||
| [ext_resource path="res://jrpg/scripts/levels/test_coins.gd" type="Script" id=5] | [ext_resource path="res://jrpg/scripts/levels/test_coins.gd" type="Script" id=5] | ||||
| @@ -12,6 +12,7 @@ | |||||
| [ext_resource path="res://jrpg/models/nature/_defaultMat.material" type="Material" id=10] | [ext_resource path="res://jrpg/models/nature/_defaultMat.material" type="Material" id=10] | ||||
| [ext_resource path="res://jrpg/scripts/levels/script_trigger.gd" type="Script" id=11] | [ext_resource path="res://jrpg/scripts/levels/script_trigger.gd" type="Script" id=11] | ||||
| [ext_resource path="res://jrpg/characters/basic_enemy.tres" type="Resource" id=12] | [ext_resource path="res://jrpg/characters/basic_enemy.tres" type="Resource" id=12] | ||||
| [ext_resource path="res://jrpg/yarn_scripts/all_coins_picked_up_script.yarn" type="Resource" id=13] | |||||
| [ext_resource path="res://jrpg/scripts/misc/test_level.gd" type="Script" id=15] | [ext_resource path="res://jrpg/scripts/misc/test_level.gd" type="Script" id=15] | ||||
| [sub_resource type="ArrayMesh" id=1] | [sub_resource type="ArrayMesh" id=1] | ||||
| @@ -241,6 +242,7 @@ radius = 5.11979 | |||||
| [node name="TestLVL" type="Spatial"] | [node name="TestLVL" type="Spatial"] | ||||
| script = ExtResource( 15 ) | script = ExtResource( 15 ) | ||||
| init_yarn_script = ExtResource( 2 ) | |||||
| [node name="WorldEnvironment" type="WorldEnvironment" parent="."] | [node name="WorldEnvironment" type="WorldEnvironment" parent="."] | ||||
| environment = ExtResource( 7 ) | environment = ExtResource( 7 ) | ||||
| @@ -372,48 +374,47 @@ material/1 = null | |||||
| [node name="CollisionShape" type="CollisionShape" parent="ground_grass/Rocks/rock_largeC/tmpParent/rock_largeC/StaticBody"] | [node name="CollisionShape" type="CollisionShape" parent="ground_grass/Rocks/rock_largeC/tmpParent/rock_largeC/StaticBody"] | ||||
| shape = SubResource( 14 ) | shape = SubResource( 14 ) | ||||
| [node name="Coins" type="Spatial" parent="."] | |||||
| [node name="Spawners" type="Spatial" parent="."] | |||||
| [node name="Coins" type="Spatial" parent="Spawners"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.43111, 0 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.43111, 0 ) | ||||
| script = ExtResource( 5 ) | script = ExtResource( 5 ) | ||||
| coin_scene = ExtResource( 3 ) | coin_scene = ExtResource( 3 ) | ||||
| all_coins_picked_up_script = ExtResource( 13 ) | |||||
| [node name="CoinSpawn1" type="Spatial" parent="Coins"] | |||||
| [node name="CoinSpawn1" type="Spatial" parent="Spawners/Coins"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 14.3334, 0, 0 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 14.3334, 0, 0 ) | ||||
| [node name="CoinSpawn2" type="Spatial" parent="Coins"] | |||||
| [node name="CoinSpawn2" type="Spatial" parent="Spawners/Coins"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.165, 0, 0 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.165, 0, 0 ) | ||||
| [node name="CoinSpawn3" type="Spatial" parent="Coins"] | |||||
| [node name="CoinSpawn3" type="Spatial" parent="Spawners/Coins"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.81607, 0, 9.68945 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.81607, 0, 9.68945 ) | ||||
| [node name="CoinSpawn4" type="Spatial" parent="Coins"] | |||||
| [node name="CoinSpawn4" type="Spatial" parent="Spawners/Coins"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19.3149, 0, 6.87337 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 19.3149, 0, 6.87337 ) | ||||
| [node name="CoinSpawn5" type="Spatial" parent="Coins"] | |||||
| [node name="CoinSpawn5" type="Spatial" parent="Spawners/Coins"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.330003, 4.60946, -9.86923 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.330003, 4.60946, -9.86923 ) | ||||
| [node name="CoinSpawn6" type="Spatial" parent="Coins"] | |||||
| [node name="CoinSpawn6" type="Spatial" parent="Spawners/Coins"] | |||||
| [node name="Enemy Spawner" type="Spatial" parent="."] | |||||
| [node name="Kiley" type="Spatial" parent="Spawners"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.42834, 0, 8.41565 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.42834, 0, 8.41565 ) | ||||
| script = ExtResource( 1 ) | script = ExtResource( 1 ) | ||||
| character_data = ExtResource( 12 ) | character_data = ExtResource( 12 ) | ||||
| [node name="Player Spawner" type="Spatial" parent="."] | |||||
| [node name="Player" type="Spatial" parent="Spawners"] | |||||
| transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.218717, 0, -1.84536 ) | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.218717, 0, -1.84536 ) | ||||
| script = ExtResource( 1 ) | script = ExtResource( 1 ) | ||||
| character_data = ExtResource( 6 ) | character_data = ExtResource( 6 ) | ||||
| spawn_on_ready = true | |||||
| [node name="TriggerArea" type="Area" parent="."] | |||||
| [node name="Triggers" type="Spatial" parent="."] | |||||
| [node name="Event1" type="Area" parent="Triggers"] | |||||
| transform = Transform( 0.575895, 0, 0, 0, 0.575895, 0, 0, 0, 0.575895, 10.1852, 5.06822, 17.449 ) | transform = Transform( 0.575895, 0, 0, 0, 0.575895, 0, 0, 0, 0.575895, 10.1852, 5.06822, 17.449 ) | ||||
| script = ExtResource( 11 ) | script = ExtResource( 11 ) | ||||
| yarnScript = ExtResource( 4 ) | |||||
| [node name="CollisionShape" type="CollisionShape" parent="TriggerArea"] | |||||
| [node name="CollisionShape" type="CollisionShape" parent="Triggers/Event1"] | |||||
| shape = SubResource( 15 ) | shape = SubResource( 15 ) | ||||
| [node name="YarnRunnerNode" type="Node" parent="TriggerArea"] | |||||
| script = ExtResource( 2 ) | |||||
| yarnScript = ExtResource( 4 ) | |||||
| [connection signal="all_coins_picked_up" from="Coins" to="." method="_on_Coins_all_coins_picked_up"] | |||||
| [connection signal="body_entered" from="TriggerArea" to="TriggerArea" method="_on_TriggerArea_body_entered"] | |||||
| @@ -1,8 +1,6 @@ | |||||
| [gd_scene load_steps=8 format=2] | |||||
| [gd_scene load_steps=6 format=2] | |||||
| [ext_resource path="res://addons/yarn_spinner/yarn_runner_node.gd" type="Script" id=1] | |||||
| [ext_resource path="res://jrpg/scripts/misc/test_main.gd" type="Script" id=2] | [ext_resource path="res://jrpg/scripts/misc/test_main.gd" type="Script" id=2] | ||||
| [ext_resource path="res://jrpg/yarn_scripts/main_debug.yarn" type="Resource" id=3] | |||||
| [ext_resource path="res://jrpg/scenes/TestLVL.tscn" type="PackedScene" id=4] | [ext_resource path="res://jrpg/scenes/TestLVL.tscn" type="PackedScene" id=4] | ||||
| [ext_resource path="res://jrpg/scenes/TestGameOver.tscn" type="PackedScene" id=5] | [ext_resource path="res://jrpg/scenes/TestGameOver.tscn" type="PackedScene" id=5] | ||||
| [ext_resource path="res://jrpg/scenes/ui/SpeechPanel.tscn" type="PackedScene" id=6] | [ext_resource path="res://jrpg/scenes/ui/SpeechPanel.tscn" type="PackedScene" id=6] | ||||
| @@ -15,10 +13,6 @@ scenes = { | |||||
| "TestLVL": ExtResource( 4 ) | "TestLVL": ExtResource( 4 ) | ||||
| } | } | ||||
| [node name="YarnRunnerNode" type="Node" parent="."] | |||||
| script = ExtResource( 1 ) | |||||
| yarnScript = ExtResource( 3 ) | |||||
| [node name="SceneContainer" type="Node" parent="."] | [node name="SceneContainer" type="Node" parent="."] | ||||
| [node name="CanvasLayer" type="CanvasLayer" parent="."] | [node name="CanvasLayer" type="CanvasLayer" parent="."] | ||||
| @@ -2,27 +2,9 @@ extends BasisInteraction | |||||
| class_name TalkInteraction | class_name TalkInteraction | ||||
| var is_talking = false | |||||
| signal trigger_script | |||||
| export var yarnScript : Resource | |||||
| var yarnRunner := YarnRunner.new() | |||||
| func _ready(): | |||||
| yarnRunner.add_command("SpawnCoins", funcref($"../../../Coins", "spawn_coins")) | |||||
| var yarn_script : Resource | |||||
| func on_interact(): | func on_interact(): | ||||
| if not is_talking: | |||||
| yarnRunner.say_func = funcref(Controller.speech_panel.text, "on_new_line") | |||||
| yarnRunner.choices_func = funcref(Controller.speech_panel.choices, "on_choices") | |||||
| yarnRunner.yarnScript = self.yarnScript | |||||
| is_talking = true | |||||
| Controller.speech_panel.show() | |||||
| Controller.player_input_enabled = false | |||||
| yield(yarnRunner.run_all(), "completed") | |||||
| Controller.player_input_enabled = true | |||||
| Controller.speech_panel.hide() | |||||
| is_talking = false | |||||
| emit_signal("trigger_script", yarn_script) | |||||
| @@ -2,7 +2,9 @@ extends Node | |||||
| class_name BaseLevel | class_name BaseLevel | ||||
| signal end | |||||
| signal request_new_scene | |||||
| onready var yarnRunner := YarnRunner.new() | |||||
| func _enter_tree(): | func _enter_tree(): | ||||
| Controller.player_input_enabled = true | Controller.player_input_enabled = true | ||||
| @@ -0,0 +1,11 @@ | |||||
| extends BaseLevel | |||||
| func _input(event): | |||||
| if event.is_action_pressed("ui_accept") or event.is_action_pressed("ui_cancel"): | |||||
| on_interaction() | |||||
| func _on_Button_pressed(): | |||||
| on_interaction() | |||||
| func on_interaction(): | |||||
| emit_signal("request_new_scene", "TestLVL") | |||||
| @@ -1,15 +1,12 @@ | |||||
| extends Node | |||||
| extends Area | |||||
| var prout := false | |||||
| signal trigger_script | |||||
| func _ready(): | |||||
| $YarnRunnerNode.yarnRunner.add_command("Spawn", funcref(self, "spawn")) | |||||
| func _on_TriggerArea_body_entered(body): | |||||
| if not prout: | |||||
| $YarnRunnerNode.start_script() | |||||
| prout = true | |||||
| export var yarnScript : Resource | |||||
| func enable(): | |||||
| self.connect("body_entered", self, "_on_TriggerArea_body_entered") | |||||
| func spawn(entity): | |||||
| yield(get_tree(), "idle_frame") | |||||
| $"../Enemy Spawner".spawn($"../Enemy Spawner".character_data) | |||||
| func _on_TriggerArea_body_entered(body): | |||||
| print("triggered") | |||||
| emit_signal("trigger_script", yarnScript) | |||||
| @@ -1,18 +1,16 @@ | |||||
| extends Node | extends Node | ||||
| export var character_data : Resource | export var character_data : Resource | ||||
| export var spawn_on_ready := false | |||||
| func _ready(): | |||||
| if spawn_on_ready: | |||||
| spawn(character_data) | |||||
| var interaction_component : BasisInteraction | |||||
| func spawn(entity): | |||||
| func spawn(level): | |||||
| var inst = character_data.scene.instance() | var inst = character_data.scene.instance() | ||||
| inst.name = character_data.name | inst.name = character_data.name | ||||
| if character_data.yarn != null: | if character_data.yarn != null: | ||||
| var yarn_runner := TalkInteraction.new() | |||||
| yarn_runner.name = character_data.yarn.resource_name | |||||
| yarn_runner.yarnScript = character_data.yarn | |||||
| inst.add_child(yarn_runner) | |||||
| interaction_component = TalkInteraction.new() | |||||
| interaction_component.name = character_data.yarn.resource_name | |||||
| interaction_component.yarn_script = character_data.yarn | |||||
| interaction_component.connect("trigger_script", level, "trigger_script") | |||||
| inst.add_child(interaction_component) | |||||
| add_child(inst) | add_child(inst) | ||||
| @@ -4,28 +4,21 @@ signal all_coins_picked_up | |||||
| export var coin_scene : PackedScene | export var coin_scene : PackedScene | ||||
| var prout := false | |||||
| export var spawn_on_ready := false | |||||
| export var all_coins_picked_up_script : Resource | |||||
| var coins := -1 | var coins := -1 | ||||
| func _ready(): | |||||
| if spawn_on_ready: | |||||
| spawn_coins(null) | |||||
| func spawn_coins(args): | |||||
| yield(get_tree(), "idle_frame") | |||||
| if not prout: | |||||
| func spawn(level): | |||||
| if coins < 0: # not spawned yet | |||||
| coins = 0 | coins = 0 | ||||
| for spawn in get_children(): | for spawn in get_children(): | ||||
| var coin = coin_scene.instance() | var coin = coin_scene.instance() | ||||
| coin.connect("picked_up", self, "on_coin_picked_up") | coin.connect("picked_up", self, "on_coin_picked_up") | ||||
| coins += 1 | coins += 1 | ||||
| spawn.add_child(coin) | spawn.add_child(coin) | ||||
| prout = true | |||||
| connect("all_coins_picked_up", level, "trigger_script") | |||||
| func on_coin_picked_up(): | func on_coin_picked_up(): | ||||
| coins -= 1 | coins -= 1 | ||||
| if coins == 0: | if coins == 0: | ||||
| emit_signal("all_coins_picked_up") | |||||
| emit_signal("all_coins_picked_up", all_coins_picked_up_script) | |||||
| @@ -1,6 +1,6 @@ | |||||
| extends Node | extends Node | ||||
| var speech_panel | |||||
| var speech_panel : SpeechPanel | |||||
| var player_infos := PlayerInfos.new() | var player_infos := PlayerInfos.new() | ||||
| @@ -2,5 +2,66 @@ extends BaseLevel | |||||
| class_name TestLevel | class_name TestLevel | ||||
| func _on_Coins_all_coins_picked_up(): | |||||
| emit_signal("end") | |||||
| export var init_yarn_script : Resource | |||||
| func _ready(): | |||||
| yarnRunner.add_command("Spawn", funcref(self, "spawn")) | |||||
| yarnRunner.add_command("EnableTrigger", funcref(self, "enable_trigger")) | |||||
| yarnRunner.add_command("Scene", funcref(self, "scene")) | |||||
| for trigger in $Triggers.get_children(): | |||||
| trigger.connect("trigger_script", self, "trigger_script") | |||||
| trigger_script(init_yarn_script) | |||||
| func spawn(args): | |||||
| yield(get_tree(), "idle_frame") | |||||
| if args.size() < 1: | |||||
| printerr("Spawn command take at least one parameter for target") | |||||
| return | |||||
| var spawner = get_node("Spawners/" + args[0]) | |||||
| if spawner != null and spawner.has_method("spawn"): | |||||
| spawner.spawn(self) | |||||
| else: | |||||
| print("spawner " + args[0] + " not found or not compatible") | |||||
| func enable_trigger(args): | |||||
| yield(get_tree(), "idle_frame") | |||||
| if args.size() < 1: | |||||
| printerr("EnableTrigger command take at least one parameter for target") | |||||
| return | |||||
| var trigger = get_node("Triggers/" + args[0]) | |||||
| if trigger != null and trigger.has_method("enable"): | |||||
| trigger.enable() | |||||
| print("trigger " + args[0] + " enabled") | |||||
| else: | |||||
| print("trigger " + args[0] + " not found or not compatible") | |||||
| func trigger_script(yarn_script): | |||||
| print("script triggered") | |||||
| yarnRunner.say_func = funcref(Controller.speech_panel.text, "on_new_line") | |||||
| yarnRunner.choices_func = funcref(Controller.speech_panel.choices, "on_choices") | |||||
| Controller.speech_panel.show() | |||||
| Controller.player_input_enabled = false | |||||
| yarnRunner.yarnScript = yarn_script | |||||
| yield(yarnRunner.run_all(), "completed") | |||||
| Controller.speech_panel.hide() | |||||
| Controller.player_input_enabled = true | |||||
| func scene(args): | |||||
| yield(get_tree(), "idle_frame") | |||||
| if args.size() < 1: | |||||
| printerr("Scene command take at least one parameter for target") | |||||
| return | |||||
| print("Request new scene : " + args[0]) | |||||
| emit_signal("request_new_scene", args[0]) | |||||
| @@ -5,31 +5,25 @@ export var scenes : Dictionary | |||||
| signal end | signal end | ||||
| func _ready(): | func _ready(): | ||||
| $YarnRunnerNode.yarnRunner.add_command("Scene", funcref(self, "load_scene")) | |||||
| $YarnRunnerNode.yarnRunner.add_command("WaitSignal", funcref(self, "wait_signal")) | |||||
| yield($YarnRunnerNode.start_script(), "completed") | |||||
| load_scene("TestLVL") | |||||
| func load_scene(args): | |||||
| func load_scene(scene_key): | |||||
| yield(get_tree(),"idle_frame") | yield(get_tree(),"idle_frame") | ||||
| if args.size() > 0: | |||||
| var scene_key = args[0] | |||||
| if scenes.has(scene_key): | |||||
| for child in $SceneContainer.get_children(): | |||||
| child.queue_free() | |||||
| var scene = scenes[scene_key].instance() | |||||
| scene.connect("end", self, "on_scene_end") | |||||
| $SceneContainer.add_child(scene) | |||||
| if scene_key == "TestGameOver": | |||||
| $CanvasLayer/UI.hide() | |||||
| else: | |||||
| $CanvasLayer/UI.show() | |||||
| print(scene_key) | |||||
| if scenes.has(scene_key): | |||||
| for child in $SceneContainer.get_children(): | |||||
| child.queue_free() | |||||
| var scene = scenes[scene_key].instance() | |||||
| scene.connect("request_new_scene", self, "load_scene") | |||||
| $SceneContainer.add_child(scene) | |||||
| if scene_key == "TestGameOver": | |||||
| $CanvasLayer/UI.hide() | |||||
| else: | |||||
| $CanvasLayer/UI.show() | |||||
| func wait_signal(args): | func wait_signal(args): | ||||
| yield(self, "end") | yield(self, "end") | ||||
| func on_scene_end(): | |||||
| emit_signal("end") | |||||
| func _input(event): | func _input(event): | ||||
| if event.is_action_pressed("ui_cancel"): | if event.is_action_pressed("ui_cancel"): | ||||
| emit_signal("end") | emit_signal("end") | ||||
| @@ -1,11 +1,20 @@ | |||||
| extends Control | extends Control | ||||
| class_name SpeechPanel | |||||
| export var text_path : NodePath | export var text_path : NodePath | ||||
| onready var text := get_node(text_path) | |||||
| var text : SpeechText | |||||
| export var choices_path : NodePath | export var choices_path : NodePath | ||||
| onready var choices := get_node(choices_path) | |||||
| var choices : ChoicesBox | |||||
| func _enter_tree(): | |||||
| Controller.speech_panel = self | |||||
| text = get_node(text_path) | |||||
| choices = get_node(choices_path) | |||||
| func _ready(): | func _ready(): | ||||
| Controller.speech_panel = self | Controller.speech_panel = self | ||||
| text = get_node(text_path) | |||||
| choices = get_node(choices_path) | |||||
| hide() | hide() | ||||
| @@ -0,0 +1,8 @@ | |||||
| title: Start | |||||
| tags: | |||||
| colorID: 0 | |||||
| position: 693,546 | |||||
| --- | |||||
| All coins picked up!! | |||||
| <<Scene TestGameOver>> | |||||
| === | |||||
| @@ -4,6 +4,6 @@ colorID: 0 | |||||
| position: 693,546 | position: 693,546 | ||||
| --- | --- | ||||
| Un personnage apparaît ! | Un personnage apparaît ! | ||||
| <<Spawn enemy_base>> | |||||
| <<Spawn Kiley>> | |||||
| Un personnage est apparu ! | Un personnage est apparu ! | ||||
| === | === | ||||
| @@ -1,40 +0,0 @@ | |||||
| title: Start | |||||
| tags: | |||||
| colorID: 0 | |||||
| position: 571,308 | |||||
| --- | |||||
| Starting | |||||
| [[TestLVL]] | |||||
| === | |||||
| title: TestLVL | |||||
| tags: | |||||
| colorID: 0 | |||||
| position: 571,668 | |||||
| --- | |||||
| <<Scene TestLVL>> | |||||
| Scene loaded | |||||
| [[TestLVLLoop]] | |||||
| === | |||||
| title: GameOver | |||||
| tags: | |||||
| colorID: 0 | |||||
| position: 1096,808 | |||||
| --- | |||||
| <<Scene TestGameOver>> | |||||
| Game Over | |||||
| <<WaitSignal>> | |||||
| Restarting | |||||
| [[TestLVL]] | |||||
| === | |||||
| title: TestLVLLoop | |||||
| tags: | |||||
| colorID: 0 | |||||
| position: 579,916 | |||||
| --- | |||||
| <<WaitSignal>> | |||||
| <<if False>> | |||||
| [[TestLVLLoop]] | |||||
| <<else>> | |||||
| [[GameOver]] | |||||
| <<endif>> | |||||
| === | |||||
| @@ -15,7 +15,7 @@ position: 1032,730 | |||||
| Est-ce que tu aimes la France ? | Est-ce que tu aimes la France ? | ||||
| Est-ce que tu es prêt à donner ta vie pour la France ?? | Est-ce que tu es prêt à donner ta vie pour la France ?? | ||||
| A MOURIIIR POUR TA PATRIE ?? | A MOURIIIR POUR TA PATRIE ?? | ||||
| <<SpawnCoins>> | |||||
| <<Spawn Coins>> | |||||
| Alors ramasse les piépièces ! | Alors ramasse les piépièces ! | ||||
| === | === | ||||
| title: ntm | title: ntm | ||||
| @@ -0,0 +1,9 @@ | |||||
| title: Start | |||||
| tags: | |||||
| colorID: 0 | |||||
| position: 693,546 | |||||
| --- | |||||
| <<Spawn Player>> | |||||
| Let's Start ! | |||||
| <<EnableTrigger Event1>> | |||||
| === | |||||
| @@ -39,6 +39,11 @@ _global_script_classes=[ { | |||||
| "language": "GDScript", | "language": "GDScript", | ||||
| "path": "res://jrpg/scripts/entities/model/player_infos.gd" | "path": "res://jrpg/scripts/entities/model/player_infos.gd" | ||||
| }, { | }, { | ||||
| "base": "Control", | |||||
| "class": "SpeechPanel", | |||||
| "language": "GDScript", | |||||
| "path": "res://jrpg/scripts/ui/speech_panel.gd" | |||||
| }, { | |||||
| "base": "Label", | "base": "Label", | ||||
| "class": "SpeechText", | "class": "SpeechText", | ||||
| "language": "GDScript", | "language": "GDScript", | ||||
| @@ -81,6 +86,7 @@ _global_script_class_icons={ | |||||
| "ChoicesBox": "", | "ChoicesBox": "", | ||||
| "Player": "", | "Player": "", | ||||
| "PlayerInfos": "", | "PlayerInfos": "", | ||||
| "SpeechPanel": "", | |||||
| "SpeechText": "", | "SpeechText": "", | ||||
| "TalkInteraction": "", | "TalkInteraction": "", | ||||
| "TestLevel": "", | "TestLevel": "", | ||||