Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6640ccace8 |
@@ -10,9 +10,8 @@
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_cyb15")
|
||||
name = "Duchex"
|
||||
chara_sprite = ExtResource("1_tppor")
|
||||
mask_eyes_location = Vector2(-45.45, -247.75)
|
||||
mask_mouth_location = Vector2(-39.935, -169.95)
|
||||
traits = Array[ExtResource("3_s53hh")]([ExtResource("4_tppor"), ExtResource("5_cyb15"), ExtResource("6_tppor"), ExtResource("7_03y2d")])
|
||||
preferences = Dictionary[int, int]({
|
||||
0: 0,
|
||||
|
||||
@@ -10,9 +10,8 @@
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_ce0p8")
|
||||
name = "Duke"
|
||||
chara_sprite = ExtResource("1_d1fpd")
|
||||
mask_eyes_location = Vector2(-45.45, -247.75)
|
||||
mask_mouth_location = Vector2(-39.935, -169.95)
|
||||
traits = Array[ExtResource("3_n21sh")]([ExtResource("4_d1fpd"), ExtResource("5_12asi"), ExtResource("6_12asi"), ExtResource("7_d1fpd")])
|
||||
preferences = Dictionary[int, int]({
|
||||
5: 0,
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
[resource]
|
||||
script = ExtResource("3_vvog1")
|
||||
name = "King"
|
||||
chara_sprite = ExtResource("1_k1rnw")
|
||||
mask_eyes_position = Vector2(-21.75, -274.015)
|
||||
mask_eyes_rotation = 0.06981317007977318
|
||||
|
||||
@@ -11,9 +11,8 @@
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_g8bvo")
|
||||
name = "Queen"
|
||||
chara_sprite = ExtResource("1_g8bvo")
|
||||
mask_eyes_location = Vector2(-45.45, -247.75)
|
||||
mask_mouth_location = Vector2(-39.935, -169.95)
|
||||
traits = Array[ExtResource("3_dkw07")]([ExtResource("9_aywjr"), ExtResource("8_j0xhd"), ExtResource("10_tw1u2"), ExtResource("8_d1164"), ExtResource("11_utmh4")])
|
||||
preferences = Dictionary[int, int]({
|
||||
5: 2,
|
||||
|
||||
@@ -11,6 +11,7 @@ enum Preference {
|
||||
}
|
||||
|
||||
@export_category("General")
|
||||
@export var name: String
|
||||
@export var chara_sprite: Texture2D:
|
||||
set(value):
|
||||
chara_sprite = value
|
||||
|
||||
@@ -15,6 +15,9 @@ class_name Character
|
||||
@onready var mask_mouth: Mask = $MaskMouth
|
||||
|
||||
func _on_chara_resource_changed() -> void:
|
||||
if chara_resource == null:
|
||||
return
|
||||
|
||||
face.texture = chara_resource.chara_sprite
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
[gd_scene format=3 uid="uid://cukfdjcnb5tm6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bvpyqyftqhy45" path="res://scenes/character/character.tscn" id="1_o5qli"]
|
||||
[ext_resource type="Texture2D" uid="uid://cftllq6l7xclt" path="res://icon.svg" id="2_0wfyh"]
|
||||
[ext_resource type="Script" uid="uid://b1w0ocrgjkjen" path="res://scenes/managers/game_manager.gd" id="2_0wfyh"]
|
||||
[ext_resource type="Script" uid="uid://bwam50qxikpw4" path="res://scenes/character/chara_resource.gd" id="3_o6xl0"]
|
||||
[ext_resource type="Resource" uid="uid://c87odmn680x7" path="res://resources/characters/duchex.tres" id="4_tipki"]
|
||||
[ext_resource type="Resource" uid="uid://gy4ygqrjj5ys" path="res://resources/characters/duke.tres" id="5_85g3d"]
|
||||
[ext_resource type="Resource" uid="uid://da2ptl3f7h0ot" path="res://resources/characters/king.tres" id="6_choun"]
|
||||
[ext_resource type="Resource" uid="uid://wq3g1j3l4gl6" path="res://resources/characters/queen.tres" id="7_ya4ey"]
|
||||
[ext_resource type="Script" uid="uid://d26mv2xtvmpqt" path="res://scenes/mask/mask_resource.gd" id="8_ya4ey"]
|
||||
[ext_resource type="Resource" uid="uid://cuf1ocb4px4m3" path="res://resources/masks/cat.tres" id="9_eb6dy"]
|
||||
[ext_resource type="Resource" uid="uid://pdiaprcknftw" path="res://resources/masks/mute.tres" id="10_trceg"]
|
||||
[ext_resource type="Resource" uid="uid://cbcqtj8mxngfy" path="res://resources/masks/unracist.tres" id="11_a8y0u"]
|
||||
|
||||
[node name="Main" type="Node2D" unique_id=875553242]
|
||||
|
||||
@@ -9,14 +18,7 @@
|
||||
position = Vector2(933, 598)
|
||||
scale = Vector2(0.5488516, 0.5501616)
|
||||
|
||||
[node name="Node2D" type="Node2D" parent="." unique_id=423016219]
|
||||
|
||||
[node name="Sprite2D2" type="Sprite2D" parent="." unique_id=897724120]
|
||||
position = Vector2(437, 790.00006)
|
||||
scale = Vector2(2.623044, 6.1738076)
|
||||
texture = ExtResource("2_0wfyh")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1584569522]
|
||||
position = Vector2(846, 943)
|
||||
scale = Vector2(9.480545, 1.8921106)
|
||||
texture = ExtResource("2_0wfyh")
|
||||
[node name="GameManager" type="Node" parent="." unique_id=528989100]
|
||||
script = ExtResource("2_0wfyh")
|
||||
character_roster = Array[ExtResource("3_o6xl0")]([ExtResource("4_tipki"), ExtResource("5_85g3d"), ExtResource("6_choun"), ExtResource("7_ya4ey")])
|
||||
mask_roster = Array[ExtResource("8_ya4ey")]([ExtResource("9_eb6dy"), ExtResource("10_trceg"), ExtResource("11_a8y0u")])
|
||||
|
||||
55
scenes/managers/game_manager.gd
Normal file
55
scenes/managers/game_manager.gd
Normal file
@@ -0,0 +1,55 @@
|
||||
@tool
|
||||
extends Node
|
||||
class_name GameManager
|
||||
|
||||
@export_category("Complete rosters")
|
||||
@export var character_roster: Array[CharacterResource]
|
||||
@export var mask_roster: Array[MaskResource]
|
||||
|
||||
@export_category("Predetermined levels")
|
||||
@export_group("Level 1")
|
||||
@export var lvl1_guest_1: MaskedChara
|
||||
@export var lvl1_guest_2: MaskedChara
|
||||
|
||||
@export_group("Level 2")
|
||||
@export var lvl2_guest_1: MaskedChara
|
||||
@export var lvl2_guest_2: MaskedChara
|
||||
|
||||
@export_category("Random levels")
|
||||
@export var max_roster_size: int = 3;
|
||||
@export_tool_button("Create chara roster") var create_roster_action = create_new_roster
|
||||
|
||||
var current_chara_roster: Array[MaskedChara]
|
||||
|
||||
enum GameState {
|
||||
READY,
|
||||
GUEST_REVIEW,
|
||||
FINISHED
|
||||
}
|
||||
enum Levels {
|
||||
LVL1,
|
||||
LVL2,
|
||||
RANDOM
|
||||
}
|
||||
var current_game_state = GameState.READY
|
||||
var current_level = Levels.LVL1
|
||||
|
||||
func create_new_roster() -> void:
|
||||
print("Create new roster")
|
||||
var already_picked_charas: Array[String] = []
|
||||
for i in range(max_roster_size):
|
||||
var chara: CharacterResource = character_roster.pick_random()
|
||||
var mask: MaskResource = mask_roster.pick_random()
|
||||
var all_masks: Array[MaskResource] = [mask]
|
||||
var masked_chara = MaskedChara.new(chara, all_masks)
|
||||
current_chara_roster.append(masked_chara)
|
||||
print("Added %s to roster" % chara.name)
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
1
scenes/managers/game_manager.gd.uid
Normal file
1
scenes/managers/game_manager.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b1w0ocrgjkjen
|
||||
13
scenes/managers/masked_chara.gd
Normal file
13
scenes/managers/masked_chara.gd
Normal file
@@ -0,0 +1,13 @@
|
||||
extends Resource
|
||||
class_name MaskedChara
|
||||
|
||||
@export var character: CharacterResource
|
||||
@export var masks: Array[MaskResource]
|
||||
|
||||
|
||||
# Make sure that every parameter has a default value.
|
||||
# Otherwise, there will be problems with creating and editing
|
||||
# your resource via the inspector.
|
||||
func _init(p_character: CharacterResource = CharacterResource.new(), p_mask: Array[MaskResource] = []):
|
||||
character = p_character
|
||||
masks = p_mask
|
||||
1
scenes/managers/masked_chara.gd.uid
Normal file
1
scenes/managers/masked_chara.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://b8peyg02l0mrn
|
||||
@@ -14,6 +14,8 @@ class_name Mask
|
||||
|
||||
|
||||
func _on_mask_resource_changed() -> void:
|
||||
if mask_resource == null:
|
||||
return
|
||||
mask_sprite.texture = mask_resource.mask_sprite
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
|
||||
Reference in New Issue
Block a user