mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-22 23:48:11 +00:00
added the game
This commit is contained in:
7
Scripts/Classes/Entities/Items/ClockItem.gd
Normal file
7
Scripts/Classes/Entities/Items/ClockItem.gd
Normal file
@@ -0,0 +1,7 @@
|
||||
extends PowerUpItem
|
||||
|
||||
func collect_item(_player: Player) -> void:
|
||||
AudioManager.play_sfx("clock_get", global_position)
|
||||
$Label/AnimationPlayer.play("Appear")
|
||||
Global.time = clamp(Global.time + 100, 0, 999)
|
||||
Global.score += 1000
|
1
Scripts/Classes/Entities/Items/ClockItem.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/ClockItem.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://dryofl8epgget
|
29
Scripts/Classes/Entities/Items/Coin.gd
Normal file
29
Scripts/Classes/Entities/Items/Coin.gd
Normal file
@@ -0,0 +1,29 @@
|
||||
extends Node2D
|
||||
const COIN_SPARKLE = preload("res://Scenes/Prefabs/Particles/CoinSparkle.tscn")
|
||||
|
||||
@export var spinning_coin_scene: PackedScene = null
|
||||
|
||||
signal collected
|
||||
|
||||
func area_entered(area: Area2D) -> void:
|
||||
if area.owner is Player:
|
||||
collect()
|
||||
|
||||
func collect() -> void:
|
||||
collected.emit()
|
||||
Global.coins += 1
|
||||
DiscoLevel.combo_meter += 10
|
||||
Global.score += 200
|
||||
AudioManager.play_sfx("coin", global_position)
|
||||
queue_free()
|
||||
|
||||
func summon_block_coin() -> void:
|
||||
var node = spinning_coin_scene.instantiate()
|
||||
node.global_position = global_position
|
||||
add_sibling(node)
|
||||
queue_free()
|
||||
|
||||
func summon_particle() -> void:
|
||||
var node = COIN_SPARKLE.instantiate()
|
||||
node.global_position = global_position
|
||||
add_sibling(node)
|
1
Scripts/Classes/Entities/Items/Coin.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/Coin.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://cexcll4frt0t6
|
34
Scripts/Classes/Entities/Items/Fireball.gd
Normal file
34
Scripts/Classes/Entities/Items/Fireball.gd
Normal file
@@ -0,0 +1,34 @@
|
||||
class_name FireBall
|
||||
extends CharacterBody2D
|
||||
|
||||
const CHARACTERS := ["Mario", "Luigi", "Toad", "Toadette"]
|
||||
|
||||
var character := "Mario"
|
||||
|
||||
var direction := 1
|
||||
const FIREBALL_EXPLOSION = preload("res://Scenes/Prefabs/Particles/FireballExplosion.tscn")
|
||||
|
||||
const MOVE_SPEED := 220
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
$Sprite.scale.x = direction
|
||||
$Sprite/Animation.speed_scale = direction * 2
|
||||
velocity.x = MOVE_SPEED * direction
|
||||
velocity.y += (15 / delta) * delta
|
||||
velocity.y = clamp(velocity.y, -INF, 150)
|
||||
if is_on_floor():
|
||||
velocity.y = -150
|
||||
if is_on_wall() or is_on_ceiling():
|
||||
hit()
|
||||
move_and_slide()
|
||||
|
||||
func hit(play_sfx := true) -> void:
|
||||
if play_sfx:
|
||||
AudioManager.play_sfx("bump", global_position)
|
||||
summon_explosion()
|
||||
queue_free()
|
||||
|
||||
func summon_explosion() -> void:
|
||||
var node = FIREBALL_EXPLOSION.instantiate()
|
||||
node.global_position = global_position
|
||||
add_sibling(node)
|
1
Scripts/Classes/Entities/Items/Fireball.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/Fireball.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://yh4pop7sm56c
|
4
Scripts/Classes/Entities/Items/Hachisuke.gd
Normal file
4
Scripts/Classes/Entities/Items/Hachisuke.gd
Normal file
@@ -0,0 +1,4 @@
|
||||
extends PowerUpItem
|
||||
|
||||
func play_sfx() -> void:
|
||||
AudioManager.play_sfx("hachisuke", global_position)
|
1
Scripts/Classes/Entities/Items/Hachisuke.gd.uid
Normal file
1
Scripts/Classes/Entities/Items/Hachisuke.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bb01xttxcem1c
|
25
Scripts/Classes/Entities/Items/Hammer.gd
Normal file
25
Scripts/Classes/Entities/Items/Hammer.gd
Normal file
@@ -0,0 +1,25 @@
|
||||
class_name Hammer
|
||||
extends Node2D
|
||||
|
||||
var velocity := Vector2(0, -200)
|
||||
|
||||
var direction := -1
|
||||
|
||||
func _ready() -> void:
|
||||
$Sprite.flip_h = direction == 1
|
||||
$Animations.speed_scale = -direction
|
||||
velocity.x = 120 * direction
|
||||
if Settings.file.audio.extra_sfx == 1:
|
||||
AudioManager.play_sfx("hammer_throw", global_position)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
global_position += velocity * delta
|
||||
velocity.y += (Global.entity_gravity / delta) * delta
|
||||
velocity.y = clamp(velocity.y, -INF, Global.entity_max_fall_speed)
|
||||
|
||||
func flag_die() -> void:
|
||||
queue_free()
|
||||
|
||||
func on_area_entered(area: Area2D) -> void:
|
||||
if area.owner is Player:
|
||||
area.owner.damage()
|
1
Scripts/Classes/Entities/Items/Hammer.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/Hammer.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://s1utdly4mtbi
|
8
Scripts/Classes/Entities/Items/HammerItem.gd
Executable file
8
Scripts/Classes/Entities/Items/HammerItem.gd
Executable file
@@ -0,0 +1,8 @@
|
||||
extends PowerUpItem
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
pass
|
||||
|
||||
func on_player_entered(player: Player) -> void:
|
||||
player.hammer_get()
|
||||
queue_free()
|
1
Scripts/Classes/Entities/Items/HammerItem.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/HammerItem.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://vhxup1pn2v8q
|
18
Scripts/Classes/Entities/Items/KeyItem.gd
Normal file
18
Scripts/Classes/Entities/Items/KeyItem.gd
Normal file
@@ -0,0 +1,18 @@
|
||||
class_name KeyItem
|
||||
extends Node2D
|
||||
|
||||
static var total_collected := 0
|
||||
const SMOKE_PARTICLE = preload("uid://d08nv4qtfouv1")
|
||||
func _ready() -> void:
|
||||
$AnimationPlayer.play("Float")
|
||||
|
||||
func collected() -> void:
|
||||
total_collected += 1
|
||||
AudioManager.play_sfx("key_collect", global_position)
|
||||
summon_smoke_particle()
|
||||
queue_free()
|
||||
|
||||
func summon_smoke_particle() -> void:
|
||||
var node = SMOKE_PARTICLE.instantiate()
|
||||
node.global_position = global_position
|
||||
add_sibling(node)
|
1
Scripts/Classes/Entities/Items/KeyItem.gd.uid
Normal file
1
Scripts/Classes/Entities/Items/KeyItem.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cjgbt7iof66j0
|
51
Scripts/Classes/Entities/Items/PowerUpItem.gd
Normal file
51
Scripts/Classes/Entities/Items/PowerUpItem.gd
Normal file
@@ -0,0 +1,51 @@
|
||||
class_name PowerUpItem
|
||||
extends CharacterBody2D
|
||||
|
||||
signal collected
|
||||
|
||||
@export var power_up_state := "Big"
|
||||
var direction := 1
|
||||
|
||||
signal physics_tick(delta: float)
|
||||
|
||||
const player_angles := [Vector2(-1, -1), Vector2(1, -1), Vector2(-0.5, -2), Vector2(0.5, -2)]
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
physics_tick.emit(delta)
|
||||
|
||||
func collect_item(player: Player) -> void:
|
||||
collected.emit()
|
||||
player.get_power_up(power_up_state)
|
||||
queue_free()
|
||||
|
||||
func player_multiplayer_launch_spawn(player: Player) -> void:
|
||||
global_position.y -= 8
|
||||
velocity = 100 * player_angles[player.player_id]
|
||||
direction = sign(velocity.x)
|
||||
|
||||
func on_area_entered(area: Area2D) -> void:
|
||||
if area.owner is Player:
|
||||
collect_item(area.owner)
|
||||
|
||||
func block_bounce_up() -> void:
|
||||
velocity.y = -200
|
||||
|
||||
func block_dispense_tween() -> void:
|
||||
var old_z = z_index
|
||||
z_index = -2
|
||||
show()
|
||||
reset_physics_interpolation()
|
||||
AudioManager.play_sfx("item_appear", global_position)
|
||||
set_physics_process(false)
|
||||
set_process(false)
|
||||
global_position.y += 8
|
||||
var time := 1
|
||||
var tween = create_tween().tween_property(self, "position:y", position.y - 15, time)
|
||||
await tween.finished
|
||||
if get_parent().get_parent() is TrackRider:
|
||||
reparent(get_parent().get_parent().get_parent())
|
||||
reset_physics_interpolation()
|
||||
velocity.y = 0
|
||||
set_physics_process(true)
|
||||
set_process(true)
|
||||
z_index = old_z
|
1
Scripts/Classes/Entities/Items/PowerUpItem.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/PowerUpItem.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://cjkurwybsaywm
|
33
Scripts/Classes/Entities/Items/RedCoin.gd
Normal file
33
Scripts/Classes/Entities/Items/RedCoin.gd
Normal file
@@ -0,0 +1,33 @@
|
||||
extends Node2D
|
||||
|
||||
@export var id := 0
|
||||
var already_collected := false
|
||||
const COLLECTION_SFXS := [preload("uid://drr1qqeuhmv6m"), preload("uid://de1tktivtggdv"), preload("uid://cdtlca36qsba5"), preload("uid://dd47k4c5sypwp"), preload("uid://chi2nogc2op4i")]
|
||||
const SPINNING_RED_COIN = preload("res://Scenes/Prefabs/Entities/Items/SpinningRedCoin.tscn")
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if ChallengeModeHandler.is_coin_collected(id):
|
||||
already_collected = true
|
||||
$Sprite.play("Collected")
|
||||
set_visibility_layer_bit(0, false)
|
||||
|
||||
func on_player_entered(_player: Player) -> void:
|
||||
collected()
|
||||
|
||||
func collected() -> void:
|
||||
if already_collected:
|
||||
AudioManager.play_sfx("coin", global_position, 2)
|
||||
else:
|
||||
AudioManager.play_sfx(COLLECTION_SFXS[ChallengeModeHandler.red_coins], global_position)
|
||||
ChallengeModeHandler.red_coins += 1
|
||||
Global.score += 200
|
||||
ChallengeModeHandler.set_value(id, true)
|
||||
queue_free()
|
||||
|
||||
func summon_bounced_coin() -> void:
|
||||
var node = SPINNING_RED_COIN.instantiate()
|
||||
node.id = id
|
||||
node.global_position = global_position + Vector2(0, 8)
|
||||
add_sibling(node)
|
||||
queue_free()
|
1
Scripts/Classes/Entities/Items/RedCoin.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/RedCoin.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://xwq5ac650e76
|
11
Scripts/Classes/Entities/Items/ReserveItem.gd
Normal file
11
Scripts/Classes/Entities/Items/ReserveItem.gd
Normal file
@@ -0,0 +1,11 @@
|
||||
extends PowerUpItem
|
||||
|
||||
func _ready() -> void:
|
||||
power_up_state = Global.stored_item
|
||||
global_position = get_viewport().get_camera_2d().get_screen_center_position() + Vector2(4, -96)
|
||||
AudioManager.play_global_sfx("item_appear")
|
||||
Global.stored_item = ""
|
||||
reset_physics_interpolation()
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
global_position.y += 48 * delta
|
1
Scripts/Classes/Entities/Items/ReserveItem.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/ReserveItem.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://bbeh6dsp1hpan
|
20
Scripts/Classes/Entities/Items/SpinningCoin.gd
Executable file
20
Scripts/Classes/Entities/Items/SpinningCoin.gd
Executable file
@@ -0,0 +1,20 @@
|
||||
extends Node2D
|
||||
const COIN_SPARKLE = preload("res://Scenes/Prefabs/Particles/CoinSparkle.tscn")
|
||||
var velocity := Vector2(0, -300)
|
||||
|
||||
func _ready() -> void:
|
||||
Global.coins += 1
|
||||
Global.score += 200
|
||||
AudioManager.play_sfx("coin", global_position)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
global_position += velocity * delta
|
||||
velocity.y += (15 / delta) * delta
|
||||
|
||||
func vanish() -> void:
|
||||
queue_free()
|
||||
|
||||
func summon_particle() -> void:
|
||||
var node = COIN_SPARKLE.instantiate()
|
||||
node.global_position = global_position
|
||||
add_sibling(node)
|
1
Scripts/Classes/Entities/Items/SpinningCoin.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/SpinningCoin.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://dixhffcqfnyku
|
28
Scripts/Classes/Entities/Items/SpinningRedCoin.gd
Normal file
28
Scripts/Classes/Entities/Items/SpinningRedCoin.gd
Normal file
@@ -0,0 +1,28 @@
|
||||
extends Node2D
|
||||
|
||||
var velocity := Vector2(0, -300)
|
||||
|
||||
var id := 0
|
||||
|
||||
const collection_sounds := [preload("uid://drr1qqeuhmv6m"), preload("uid://de1tktivtggdv"), preload("uid://cdtlca36qsba5"), preload("uid://dd47k4c5sypwp"), preload("uid://chi2nogc2op4i")]
|
||||
|
||||
var already_collected := false
|
||||
|
||||
func _ready() -> void:
|
||||
already_collected = ChallengeModeHandler.is_coin_collected(id)
|
||||
if already_collected == false:
|
||||
ChallengeModeHandler.red_coins += 1
|
||||
AudioManager.play_sfx(collection_sounds[ChallengeModeHandler.red_coins - 1], global_position)
|
||||
else:
|
||||
set_visibility_layer_bit(0, false)
|
||||
AudioManager.play_sfx("coin", global_position, 2)
|
||||
$Sprite.play("Collected")
|
||||
Global.score += 200
|
||||
ChallengeModeHandler.set_value(id, true)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
global_position += velocity * delta
|
||||
velocity.y += (15 / delta) * delta
|
||||
|
||||
func vanish() -> void:
|
||||
queue_free()
|
1
Scripts/Classes/Entities/Items/SpinningRedCoin.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/SpinningRedCoin.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://bmi5fmguqbdyh
|
27
Scripts/Classes/Entities/Items/SuperMushroom.gd
Normal file
27
Scripts/Classes/Entities/Items/SuperMushroom.gd
Normal file
@@ -0,0 +1,27 @@
|
||||
extends PowerUpItem
|
||||
|
||||
const MOVE_SPEED := 65
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
$BasicEnemyMovement.handle_movement(delta)
|
||||
|
||||
func on_area_entered(area: Area2D) -> void:
|
||||
if area.owner is Player:
|
||||
if has_meta("is_poison"):
|
||||
area.owner.damage()
|
||||
queue_free()
|
||||
elif has_meta("is_oneup"):
|
||||
give_life(area.owner)
|
||||
else:
|
||||
collect_item(area.owner)
|
||||
|
||||
func give_life(_player: Player) -> void:
|
||||
DiscoLevel.combo_amount += 1
|
||||
AudioManager.play_sfx("1_up", global_position)
|
||||
if Global.current_game_mode == Global.GameMode.CHALLENGE or Settings.file.difficulty.inf_lives:
|
||||
Global.score += 2000
|
||||
$ScoreNoteSpawner.spawn_note(2000)
|
||||
else:
|
||||
$ScoreNoteSpawner.spawn_one_up_note()
|
||||
Global.lives += 1
|
||||
queue_free()
|
1
Scripts/Classes/Entities/Items/SuperMushroom.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/SuperMushroom.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://dlrdjo1ksvp7q
|
13
Scripts/Classes/Entities/Items/SuperStar.gd
Normal file
13
Scripts/Classes/Entities/Items/SuperStar.gd
Normal file
@@ -0,0 +1,13 @@
|
||||
extends PowerUpItem
|
||||
|
||||
@export var star_bgm: AudioStream = null
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
$BasicEnemyMovement.handle_movement(delta)
|
||||
|
||||
func collect_item(player: Player) -> void:
|
||||
collected.emit()
|
||||
player.super_star()
|
||||
AudioManager.play_sfx("power_up", global_position)
|
||||
AudioManager.set_music_override(AudioManager.MUSIC_OVERRIDES.STAR, 1, false)
|
||||
queue_free()
|
1
Scripts/Classes/Entities/Items/SuperStar.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/SuperStar.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://dbeg86pjflojw
|
78
Scripts/Classes/Entities/Items/Vine.gd
Normal file
78
Scripts/Classes/Entities/Items/Vine.gd
Normal file
@@ -0,0 +1,78 @@
|
||||
class_name Vine
|
||||
extends Node2D
|
||||
|
||||
@export var top_point := -256
|
||||
|
||||
const SPEED := 32.0
|
||||
@onready var collision: CollisionShape2D = $Hitbox/Collision
|
||||
@onready var visuals: NinePatchRect = $Visuals
|
||||
@onready var hitbox: Area2D = $Hitbox
|
||||
|
||||
|
||||
@export var cutscene = false
|
||||
@export var can_tele := true
|
||||
|
||||
var can_stop := true
|
||||
|
||||
signal stopped
|
||||
|
||||
func _ready() -> void:
|
||||
global_position.y -= 1
|
||||
if cutscene:
|
||||
do_cutscene()
|
||||
|
||||
func do_cutscene() -> void:
|
||||
for i in get_tree().get_nodes_in_group("Players"):
|
||||
i.global_position = global_position + Vector2(0, 24)
|
||||
i.hide()
|
||||
i.state_machine.transition_to("Freeze")
|
||||
await stopped
|
||||
for i: Player in get_tree().get_nodes_in_group("Players"):
|
||||
i.show()
|
||||
for x in [1, 2]:
|
||||
i.set_collision_mask_value(x, false)
|
||||
i.state_machine.transition_to("Climb", {"Vine" = self, "Cutscene" = true})
|
||||
var climb_state = i.get_node("States/Climb")
|
||||
climb_state.climb_direction = -1
|
||||
await get_tree().create_timer(1.5, false).timeout
|
||||
i.direction = -1
|
||||
climb_state.climb_direction = 0
|
||||
await get_tree().create_timer(0.5, false).timeout
|
||||
i.state_machine.transition_to("Normal")
|
||||
for x in [1, 2]:
|
||||
i.set_collision_mask_value(x, true)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if global_position.y >= top_point:
|
||||
global_position.y -= SPEED * delta
|
||||
visuals.size.y += SPEED * delta
|
||||
collision.shape.size.y += SPEED * delta
|
||||
collision.position.y += (SPEED / 2) * delta
|
||||
elif can_stop:
|
||||
can_stop = false
|
||||
stopped.emit()
|
||||
|
||||
handle_player_interaction(delta)
|
||||
$WarpHitbox/CollisionShape2D.set_deferred("disabled", global_position.y > top_point)
|
||||
|
||||
func handle_player_interaction(delta: float) -> void:
|
||||
for i in hitbox.get_overlapping_areas():
|
||||
if i.owner is Player:
|
||||
if Global.player_action_pressed("move_up", i.owner.player_id) and i.owner.state_machine.state.name == "Normal":
|
||||
i.owner.state_machine.transition_to("Climb", {"Vine": self})
|
||||
elif i.owner.state_machine.state.name == "Climb" and global_position.y >= top_point:
|
||||
i.owner.global_position.y -= SPEED * delta
|
||||
|
||||
|
||||
func on_player_entered(_player: Player) -> void:
|
||||
if can_tele == false:
|
||||
return
|
||||
Level.in_vine_level = true
|
||||
Level.vine_return_level = Global.current_level.scene_file_path
|
||||
Global.transition_to_scene(Level.vine_warp_level)
|
||||
|
||||
|
||||
func on_area_exited(area: Area2D) -> void:
|
||||
if area.owner is Player:
|
||||
if area.owner.state_machine.state.name == "Climb":
|
||||
area.owner.state_machine.transition_to("Normal")
|
1
Scripts/Classes/Entities/Items/Vine.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/Vine.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://cxtvy2qolon2f
|
30
Scripts/Classes/Entities/Items/YoshiEgg.gd
Normal file
30
Scripts/Classes/Entities/Items/YoshiEgg.gd
Normal file
@@ -0,0 +1,30 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
var gave_points := false
|
||||
|
||||
func _ready() -> void:
|
||||
AudioManager.play_sfx("item_appear", global_position)
|
||||
velocity.y = -150
|
||||
$Egg.play(["Green", "Yellow", "Red", "Blue"][Global.level_num - 1])
|
||||
$Yoshi.play(["Green", "Yellow", "Red", "Blue"][Global.level_num - 1])
|
||||
await get_tree().create_timer(1.5, false).timeout
|
||||
ChallengeModeHandler.set_value(ChallengeModeHandler.CoinValues.YOSHI_EGG, true)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
velocity.y += (Global.entity_gravity / delta) * delta
|
||||
velocity.y = clamp(velocity.y, -INF, Global.entity_max_fall_speed)
|
||||
move_and_slide()
|
||||
|
||||
func show_smoke() -> void:
|
||||
gave_points = true
|
||||
var smoke = preload("res://Scenes/Prefabs/Particles/SmokeParticle.tscn").instantiate()
|
||||
smoke.scale = Vector2(2, 2)
|
||||
smoke.global_position =global_position
|
||||
add_sibling(smoke)
|
||||
$ScoreNoteSpawner.spawn_note(5000)
|
||||
queue_free()
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if gave_points == false:
|
||||
ChallengeModeHandler.set_value(ChallengeModeHandler.CoinValues.YOSHI_EGG, true)
|
||||
Global.score += 5000
|
1
Scripts/Classes/Entities/Items/YoshiEgg.gd.uid
Executable file
1
Scripts/Classes/Entities/Items/YoshiEgg.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://c0c5ctrmxhpk7
|
Reference in New Issue
Block a user