@@ -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": "", | ||||