forked from team-sg/hero-mark-2
adjusted famira balancing
This commit is contained in:
parent
7240402776
commit
9e8abe19ef
19 changed files with 128 additions and 41 deletions
BIN
audio/music/rumble_revolution.ogg
Normal file
BIN
audio/music/rumble_revolution.ogg
Normal file
Binary file not shown.
15
audio/music/rumble_revolution.ogg.import
Normal file
15
audio/music/rumble_revolution.ogg.import
Normal file
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/rumble_revolution.ogg-f4caaf13c218d7e4e59d5ae9bc9b9d8a.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/music/rumble_revolution.ogg"
|
||||
dest_files=[ "res://.import/rumble_revolution.ogg-f4caaf13c218d7e4e59d5ae9bc9b9d8a.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
BIN
audio/sounds/cop_splat.ogg
Normal file
BIN
audio/sounds/cop_splat.ogg
Normal file
Binary file not shown.
15
audio/sounds/cop_splat.ogg.import
Normal file
15
audio/sounds/cop_splat.ogg.import
Normal file
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/cop_splat.ogg-5903ad8999d95a4ef126279b8e808331.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sounds/cop_splat.ogg"
|
||||
dest_files=[ "res://.import/cop_splat.ogg-5903ad8999d95a4ef126279b8e808331.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
BIN
audio/sounds/fami_grumble.ogg
Normal file
BIN
audio/sounds/fami_grumble.ogg
Normal file
Binary file not shown.
15
audio/sounds/fami_grumble.ogg.import
Normal file
15
audio/sounds/fami_grumble.ogg.import
Normal file
|
@ -0,0 +1,15 @@
|
|||
[remap]
|
||||
|
||||
importer="ogg_vorbis"
|
||||
type="AudioStreamOGGVorbis"
|
||||
path="res://.import/fami_grumble.ogg-cabbe16ca489c6f315bf9a64fc367c42.oggstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sounds/fami_grumble.ogg"
|
||||
dest_files=[ "res://.import/fami_grumble.ogg-cabbe16ca489c6f315bf9a64fc367c42.oggstr" ]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
Binary file not shown.
BIN
audio/sounds/se_g2.wav
Normal file
BIN
audio/sounds/se_g2.wav
Normal file
Binary file not shown.
23
audio/sounds/se_g2.wav.import
Normal file
23
audio/sounds/se_g2.wav.import
Normal file
|
@ -0,0 +1,23 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/se_g2.wav-2200ac432f464093b1975ff4500900fb.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/sounds/se_g2.wav"
|
||||
dest_files=[ "res://.import/se_g2.wav-2200ac432f464093b1975ff4500900fb.sample" ]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
|
@ -54,6 +54,8 @@ const a_teleport = preload("res://audio/sounds/teleport.ogg")
|
|||
const a_mkey = preload("res://audio/sounds/mkey.ogg")
|
||||
const a_msx_die = preload("res://audio/sounds/msx_die.ogg")
|
||||
const a_famira = preload("res://audio/sounds/famira.ogg")
|
||||
const a_vulcan = preload("res://audio/sounds/se_g2.wav")
|
||||
const a_grumble = preload("res://audio/sounds/fami_grumble.ogg")
|
||||
|
||||
var loop_section = null
|
||||
var has_looped = false
|
||||
|
|
|
@ -4,7 +4,7 @@ signal cutscene_finished
|
|||
|
||||
const DeathParticles = preload("res://objects/enemy/death_particles.tscn")
|
||||
|
||||
export var cutscene_skip: float = 92.0
|
||||
export var cutscene_skip: float = 78.5
|
||||
|
||||
onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||
|
||||
|
|
|
@ -192,11 +192,11 @@ tracks/0/loop_wrap = true
|
|||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 4.95088, 14.1874, 20.9397, 30.797, 40.2982, 49.7601, 59.7868, 64.7672, 71.5391, 72.2, 92 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"times": PoolRealArray( 0, 4.95088, 13, 19, 28.5, 37, 46.5, 51.5, 58, 59, 78.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 2,
|
||||
"values": [ "Aha so you've made it this far, however your efforts are all in vain.", "You see, SG,
|
||||
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "I've heard you want to start a revolution. Well, I'll have you know I kicked off my own revolution in 2068, and to be honest I don't quite see why you want my revolution to end.", "You know what they say, the freer the market, the freer the people, and ever since then I've never felt so free! I think your revolution is a foolish pipe dream! ", "Adam Smith once said \"Nobody but a beggar chooses to depend chiefly upon the benevolence of his fellow citizens\", your commie society could never work!", "I will defend my status quo as fiercly as possible! It was not by my hand that our society was erected, but it will be by mine that it is upheld!", "Oh? How will i reconstruct the Zircon Ultima? You're just the perfect tool for that. ", "While you've been on your gay little adventure collecting shards I've been waiting for this very moment to take them all from you!", "Have at you!", "", "" ]
|
||||
"values": [ "Aha! so you've made it this far, however your efforts are all in vain.", "You see, SG,
|
||||
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "I've heard you want to start a revolution. Well, I'll have you know I kicked off my own revolution in 2068, and to be honest I don't quite see why you want my revolution to end.", "You know what they say, the freer the market, the freer the people, ever since then I've never felt so free! I think your revolution is a foolish pipe dream! ", "Adam Smith once said \"Nobody but a beggar chooses to depend chiefly upon the benevolence of his fellow citizens\", your commie society would never work!", "Oh? How will i reconstruct the Zircon Ultima? You're just the perfect tool for that. ", "While you've been on your gay little adventure collecting shards I've been waiting for this very moment to take them all from you!", "Have at you!", "", "" ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("FamiVoice:playing")
|
||||
|
@ -205,10 +205,10 @@ tracks/1/loop_wrap = true
|
|||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0, 0.01, 92 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"times": PoolRealArray( 0, 78.5 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, true, false ]
|
||||
"values": [ true, false ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("Cop:position")
|
||||
|
@ -217,7 +217,7 @@ tracks/2/loop_wrap = true
|
|||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0, 72.3, 74 ),
|
||||
"times": PoolRealArray( 0, 59, 60.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( -8, 169 ), Vector2( -8, 169 ), Vector2( 72, 169 ) ]
|
||||
|
@ -229,7 +229,7 @@ tracks/3/loop_wrap = true
|
|||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"times": PoolRealArray( 72.3, 74 ),
|
||||
"times": PoolRealArray( 59, 60.5 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ "walk", "gun" ]
|
||||
|
@ -241,7 +241,7 @@ tracks/4/loop_wrap = true
|
|||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"times": PoolRealArray( 0, 75, 77, 77.4, 83, 85, 89, 89.375 ),
|
||||
"times": PoolRealArray( 0, 61.5, 63.5, 64, 69.5, 71.5, 75.5, 76 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ "idle", "walk", "idle", "punch", "walk", "idle", "shrink", "orb" ]
|
||||
|
@ -253,7 +253,7 @@ tracks/5/loop_wrap = true
|
|||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/keys = {
|
||||
"times": PoolRealArray( 0, 75, 77, 83, 85, 89, 91, 92 ),
|
||||
"times": PoolRealArray( 0, 61.5, 63.5, 69.5, 71.5, 75.5, 77.5, 78.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 105, 167 ), Vector2( 105, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 83 ) ]
|
||||
|
@ -265,7 +265,7 @@ tracks/6/loop_wrap = true
|
|||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/keys = {
|
||||
"times": PoolRealArray( 0.1, 78, 83 ),
|
||||
"times": PoolRealArray( 0.1, 64.5, 69.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, true, false ]
|
||||
|
@ -277,7 +277,7 @@ tracks/7/loop_wrap = true
|
|||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/keys = {
|
||||
"times": PoolRealArray( 0, 86, 89 ),
|
||||
"times": PoolRealArray( 0, 72.5, 75.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ false, true, false ]
|
||||
|
@ -289,7 +289,7 @@ tracks/8/loop_wrap = true
|
|||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/keys = {
|
||||
"times": PoolRealArray( 0, 88, 89 ),
|
||||
"times": PoolRealArray( 0, 74.5, 75.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 1 ) ]
|
||||
|
@ -301,7 +301,7 @@ tracks/9/loop_wrap = true
|
|||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/keys = {
|
||||
"times": PoolRealArray( 0, 88, 89 ),
|
||||
"times": PoolRealArray( 0, 74.5, 75.5 ),
|
||||
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 1 ) ]
|
||||
|
@ -313,7 +313,7 @@ tracks/10/loop_wrap = true
|
|||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/keys = {
|
||||
"times": PoolRealArray( 92 ),
|
||||
"times": PoolRealArray( 78.5 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"values": [ {
|
||||
"args": [ "cutscene_finished" ],
|
||||
|
@ -403,7 +403,7 @@ material = ExtResource( 19 )
|
|||
position = Vector2( 160, 167 )
|
||||
scale = Vector2( -1, 1 )
|
||||
frames = SubResource( 7 )
|
||||
animation = "idle"
|
||||
animation = "orb"
|
||||
playing = true
|
||||
|
||||
[node name="FamiVoice" type="AudioStreamPlayer" parent="."]
|
||||
|
@ -417,7 +417,7 @@ anims/cutscene = SubResource( 2 )
|
|||
|
||||
[node name="Cop" type="AnimatedSprite" parent="."]
|
||||
material = SubResource( 8 )
|
||||
position = Vector2( -8, 169 )
|
||||
position = Vector2( 72, 169 )
|
||||
frames = SubResource( 13 )
|
||||
animation = "gun"
|
||||
playing = true
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
|
@ -28,6 +28,7 @@ func _on_cutscene_finished() -> void:
|
|||
famira.visible = true
|
||||
famira.animation_player.play("grow")
|
||||
$AnimationPlayer.play("drop-stg")
|
||||
Audio.play_music(load("res://audio/music/rumble_revolution.ogg"))
|
||||
yield(get_tree().create_timer(0.5), "timeout")
|
||||
$FamiCutscene/FamiHuman.visible = false
|
||||
|
||||
|
|
|
@ -5,9 +5,16 @@ const SmallExplosion = preload("res://objects/enemy/boss/2600_small_explosion.ts
|
|||
export var direction: Vector2 = Vector2.LEFT
|
||||
export var speed: float = 50.0
|
||||
export var damage: float = 0.0
|
||||
onready var sprite = $AnimatedSprite
|
||||
var lifetime = 0
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
position += direction * speed * delta
|
||||
lifetime += 1
|
||||
if lifetime < 10:
|
||||
var r = rand_range(0,5)
|
||||
sprite.position.y += sin(Game.time * 20)
|
||||
print(lifetime)
|
||||
|
||||
func _exit_tree() -> void:
|
||||
var explosion = SmallExplosion.instance()
|
||||
|
|
|
@ -5,16 +5,17 @@ signal died()
|
|||
signal health_changed(amount)
|
||||
|
||||
|
||||
export var push_speed: float = 60.0
|
||||
export var chase_speed: float = 40.0
|
||||
export var breath_dps: float = 50.0
|
||||
export var push_speed: float = 30.0
|
||||
export var chase_speed: float = 50.0
|
||||
export var breath_dps: float = 20.0
|
||||
export var breath_knockback: float = 16.0
|
||||
export var punch_damage: float = 10.0
|
||||
export var punch_knockback: float = 8.0
|
||||
export var punch_damage: float = 8.0
|
||||
export var punch_knockback: float = 40.0
|
||||
export var hurting: bool = false
|
||||
export var hp: float = 100.0
|
||||
export var sg2083_beam_dps: float = 10.0
|
||||
export var sg2083_path: NodePath
|
||||
export var defense: float = 0.6
|
||||
|
||||
|
||||
onready var animation_player: AnimationPlayer = $"%AnimationPlayer"
|
||||
|
@ -22,7 +23,7 @@ onready var state_chart: StateChart = $StateChart
|
|||
onready var in_range_cast: RayCast2D = $InRangeCast
|
||||
onready var out_range_cast: RayCast2D = $OutRangeCast
|
||||
onready var shoot_range_cast: RayCast2D = $ShootRangeCast
|
||||
|
||||
onready var grumble = $Grumble
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var sg2083 := get_node(sg2083_path)
|
||||
|
@ -35,6 +36,8 @@ func _physics_process(delta: float) -> void:
|
|||
state_chart.send_event("out_of_range")
|
||||
elif in_range_cast.is_colliding():
|
||||
state_chart.send_event("in_range")
|
||||
if fmod(Game.time, 15.0) == 0.0:
|
||||
Audio.play_sound(Audio.a_grumble,Audio.ac_boss)
|
||||
|
||||
|
||||
func start_push() -> void:
|
||||
|
@ -48,7 +51,7 @@ func stop_push() -> void:
|
|||
func hurt(amount: float) -> void:
|
||||
if hp <= 0.0:
|
||||
return
|
||||
hp -= amount
|
||||
hp -= amount * defense
|
||||
hp = max(hp, 0.0)
|
||||
emit_signal("health_changed", hp)
|
||||
if hp <= 0.0:
|
||||
|
@ -64,6 +67,7 @@ func _attack() -> void:
|
|||
|
||||
|
||||
func _on_Roar_state_entered() -> void:
|
||||
|
||||
animation_player.play("roar", 0.25)
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=53 format=2]
|
||||
[gd_scene load_steps=54 format=2]
|
||||
|
||||
[ext_resource path="res://objects/enemy/boss/famira.gd" type="Script" id=1]
|
||||
[ext_resource path="res://shaders/scale3x.gdshader" type="Shader" id=2]
|
||||
|
@ -26,6 +26,7 @@
|
|||
[ext_resource path="res://graphics/enemy/boss/fami_parts/head_lower.png" type="Texture" id=24]
|
||||
[ext_resource path="res://graphics/enemy/boss/fami_parts/head_upper.png" type="Texture" id=25]
|
||||
[ext_resource path="res://graphics/enemy/boss/fami_parts/eye.png" type="Texture" id=26]
|
||||
[ext_resource path="res://audio/sounds/fami_grumble.ogg" type="AudioStream" id=27]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=11]
|
||||
extents = Vector2( 28, 64 )
|
||||
|
@ -3999,25 +4000,25 @@ collision_mask = 128
|
|||
monitorable = false
|
||||
|
||||
[node name="Body" type="CollisionShape2D" parent="Hitbox"]
|
||||
position = Vector2( 0.00461769, -23.9291 )
|
||||
rotation = -0.0114693
|
||||
position = Vector2( 0.00459766, -23.9291 )
|
||||
rotation = -0.0114701
|
||||
shape = SubResource( 13 )
|
||||
|
||||
[node name="Brain" type="CollisionShape2D" parent="Hitbox"]
|
||||
position = Vector2( 11.5072, -96.7914 )
|
||||
position = Vector2( 11.5069, -96.7914 )
|
||||
rotation = 2.48158
|
||||
z_index = 100
|
||||
shape = SubResource( 14 )
|
||||
|
||||
[node name="LowerJaw" type="CollisionShape2D" parent="Hitbox"]
|
||||
position = Vector2( -21.3082, -76.1166 )
|
||||
rotation = 1.66396
|
||||
position = Vector2( -21.3083, -76.1164 )
|
||||
rotation = 1.66395
|
||||
z_index = 100
|
||||
shape = SubResource( 15 )
|
||||
|
||||
[node name="UpperJaw" type="CollisionShape2D" parent="Hitbox"]
|
||||
position = Vector2( -21.8181, -103.259 )
|
||||
rotation = -1.66238
|
||||
position = Vector2( -21.8184, -103.259 )
|
||||
rotation = -1.66239
|
||||
z_index = 100
|
||||
shape = SubResource( 16 )
|
||||
|
||||
|
@ -4132,6 +4133,9 @@ collision_mask = 4
|
|||
collide_with_areas = true
|
||||
collide_with_bodies = false
|
||||
|
||||
[node name="Grumble" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource( 27 )
|
||||
|
||||
[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]
|
||||
[connection signal="body_entered" from="Hitbox" to="." method="_on_Hitbox_body_entered"]
|
||||
[connection signal="state_entered" from="StateChart/Root/Roar" to="." method="_on_Roar_state_entered" flags=3]
|
||||
|
|
|
@ -19,10 +19,10 @@ export var shot_speed: float = 50.0
|
|||
export var move_speed: float = 30.0
|
||||
export var safe_from_breath: bool = false
|
||||
export var make_explosions: bool = false
|
||||
export var bullet_damage: float = 1.0
|
||||
export var bullet_energy: float = 5.0
|
||||
export var beam_energy: float = 50.0
|
||||
export var duck_energy: float = 10.0
|
||||
export var bullet_damage: float = 0.2
|
||||
export var bullet_energy: float = 0.0
|
||||
export var beam_energy: float = 75.0
|
||||
export var duck_energy: float = 0.15
|
||||
export var explosion_rect: Rect2
|
||||
export var famira_path: NodePath
|
||||
|
||||
|
@ -43,7 +43,6 @@ func _physics_process(delta: float) -> void:
|
|||
return
|
||||
State.STAND:
|
||||
if Input.is_action_pressed("move_down") and energy >= duck_energy:
|
||||
set_energy(energy - duck_energy)
|
||||
state = State.DUCK
|
||||
anims.play("Duck")
|
||||
elif Input.is_action_pressed("move_right"):
|
||||
|
@ -55,6 +54,8 @@ func _physics_process(delta: float) -> void:
|
|||
State.DUCK:
|
||||
if not Input.is_action_pressed("move_down") and anims.current_animation.empty():
|
||||
anims.play("UnDuck")
|
||||
energy -= duck_energy
|
||||
|
||||
State.FORWARD:
|
||||
move_and_slide(Vector2(move_speed, 0.0))
|
||||
State.BACK:
|
||||
|
@ -87,7 +88,7 @@ func land(duck: bool) -> void:
|
|||
|
||||
func shoot() -> void:
|
||||
set_energy(energy - bullet_energy)
|
||||
Audio.play_sound(Audio.a_bullet_barrage,Audio.ac_collectible)
|
||||
Audio.play_sound(Audio.a_vulcan,Audio.ac_menu)
|
||||
for pos in bullet_positions.get_children():
|
||||
var bullet = Bullet.instance()
|
||||
bullet.global_position = pos.global_position
|
||||
|
|
|
@ -1610,7 +1610,7 @@ update_scale = false
|
|||
|
||||
[node name="KneeBack" type="Sprite" parent="Axle"]
|
||||
modulate = Color( 0.74902, 0.74902, 0.74902, 1 )
|
||||
position = Vector2( 6.25088, 28.1233 )
|
||||
position = Vector2( 6.25089, 28.1233 )
|
||||
scale = Vector2( 1, -1 )
|
||||
z_index = -1
|
||||
texture = ExtResource( 8 )
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue