messag here

This commit is contained in:
tim committed 2026-06-01 21:07:37 -04:00
1 parent ae5d43d74e
commit e4a6130947
18 files changed
+363 -33

No files matched your search

+19 -5
View File
@@ -2,6 +2,9 @@ extends Node2D
signal destroySignal(body)
signal levelChangeSignal(level)
signal damagePlayerSignal(damageTotal, playerHealthTotal)
signal killPlayerSignal
signal timechangesignal(currenttimeavailable)
var levels = ["res://Scenes/game.tscn","res://Scenes/level 2.tscn","res://Scenes/level3.tscn"]
var currentLevel = 0
@@ -15,9 +18,14 @@ var playerCurrentHealth:int = 100
#enemies
var enemiesDict = {}
var enemy:CharacterStats
var player:CharacterStats
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
get_window().grab_focus()
enemy = load("res://Scripts/rscs/slime_stats.tres")
player = load("res://Scripts/rscs/player_sats.tres")
add_child(timer)
timer.wait_time = 1
timer.one_shot = false
@@ -27,6 +35,7 @@ func _ready() -> void:
func secondCounter()->void:
print("tick")
timeAvailable-=1
timechangesignal.emit(timeAvailable)
if timeAvailable <=0:
print ("you loose!")
levelChangeSignal.emit(levels[currentLevel])
@@ -34,7 +43,7 @@ func secondCounter()->void:
func reset() -> void:
timeAvailable = timers[currentLevel]
playerCurrentHealth = 100
playerCurrentHealth = player.starting_health
get_window().grab_focus()
# Called every frame. 'delta' is the elapsed time since the previous frame.
@@ -60,16 +69,21 @@ func _on_slime_damage(_body, slime)->void:
print ("GC knows slime doing damage")
print("doing damage: "+str(enemiesDict[slime]["damage"]))
playerCurrentHealth -= enemiesDict[slime]["damage"]
#send a custom signal about damage
damagePlayerSignal.emit(enemiesDict[slime]["damage"], playerCurrentHealth)
if playerCurrentHealth <=0:
print ("U ded")
levelChangeSignal.emit(levels[currentLevel])
killPlayerSignal.emit()
func addEnemyToLevel(slime)->void:
#give each enemy some health and damage
var randamage = randi_range(1,20)
var enemyStat = {
"health": 50,
"damage": 30+randamage
}
"health": enemy.starting_health,
"damage": enemy.meleeDamage+randamage
}
enemiesDict[slime]=enemyStat
func respawn()->void:
levelChangeSignal.emit(levels[currentLevel])
+18 -2
View File
@@ -7,16 +7,19 @@ const JUMP_VELOCITY = -400.0
@onready var left_spawn: Marker2D = $LeftSpawn
@onready var player_graphic: AnimatedSprite2D = $PlayerGraphic
signal deathAnimationComplete
var direction
enum FaceDirection{LEFT,RIGHT}
var facing:FaceDirection = FaceDirection.RIGHT
enum PlayerState{IDLE,RUNNING,JUMPING,FALLING}
enum PlayerState{IDLE,RUNNING,JUMPING,FALLING,HURT,DEAD}
var current_player_state:PlayerState = PlayerState.IDLE
var upjump:bool = false
func _physics_process(delta: float) -> void:
handle_input()
if not current_player_state == PlayerState.HURT:
handle_input()
handle_state()
handle_animation()
@@ -88,6 +91,10 @@ func handle_animation()->void:
player_graphic.play("jump")
PlayerState.FALLING:
player_graphic.play("fall")
PlayerState.HURT:
player_graphic.play("Hurt")
PlayerState.DEAD:
player_graphic.play("dead")
@@ -95,3 +102,12 @@ func _on_animation_finished() -> void:
match current_player_state:
PlayerState.JUMPING:
upjump = false
PlayerState.HURT:
current_player_state = PlayerState.IDLE
PlayerState.DEAD:
deathAnimationComplete.emit()
func takeDamage(_damage,_remainingHealth)->void:
print("Players knows damage"+str(_damage))
current_player_state = PlayerState.HURT
func die()->void:
current_player_state = PlayerState.DEAD
+8
View File
@@ -0,0 +1,8 @@
class_name CharacterStats extends Resource
@export var health:int = 100
@export var max_health:int = 120
@export var starting_health = 100
@export var meleeDamage:int = 10
@export var rangeDamage:int = 5
+1
View File
@@ -0,0 +1 @@
uid://btjirk5r5r50v
+8
View File
@@ -0,0 +1,8 @@
[gd_resource type="Resource" script_class="CharacterStats" format=3 uid="uid://cobe3kt6pn1wb"]
[ext_resource type="Script" uid="uid://btjirk5r5r50v" path="res://Scripts/rscs/character_stats.gd" id="1_jiogy"]
[resource]
script = ExtResource("1_jiogy")
health = 110
metadata/_custom_type_script = "uid://btjirk5r5r50v"
+11
View File
@@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="CharacterStats" format=3 uid="uid://c0xhd2g03rcls"]
[ext_resource type="Script" uid="uid://btjirk5r5r50v" path="res://Scripts/rscs/character_stats.gd" id="1_38j4j"]
[resource]
script = ExtResource("1_38j4j")
health = 40
max_health = 45
starting_health = 40
rangeDamage = 0
metadata/_custom_type_script = "uid://btjirk5r5r50v"
+7
View File
@@ -3,12 +3,19 @@ class_name SceneManager extends Node2D
@onready var crates: Node2D = $"../Crates"
var grenade = preload("res://Scenes/grenade.tscn")
@onready var enemies: Node2D = $"../Enemies"
@onready var player = $"../Player"
@onready var control = $"../CanvasLayer/Control"
func _ready() -> void:
GameController.reset()
print("Scene manager is ready!")
GameController.destroySignal.connect(destroy)
GameController.levelChangeSignal.connect(changeScene)
GameController.damagePlayerSignal.connect(player.takeDamage)
GameController.damagePlayerSignal.connect((control.updatehealth))
GameController.timechangesignal.connect(control.updatetime)
GameController.killPlayerSignal.connect(player.die)
player.deathAnimationComplete.connect(GameController.respawn)
buildLevel()
func destroy(body)->void:
+4 -1
View File
@@ -15,13 +15,16 @@ func _process(delta: float) -> void:
if rightcast.is_colliding() and not rightcast.get_collider() is Player:
direction = -1
slime_graphic.flip_h = true
if left_cast.is_colliding() and not left_cast.get_collider() is Player:
direction = 1
slime_graphic.flip_h = false
if not right_down_cast.is_colliding():
direction = -1
slime_graphic.flip_h = true
if not left_cast.is_colliding():
if not left_down_cast.is_colliding():
direction = +1
slime_graphic.flip_h = false
+17
View File
@@ -0,0 +1,17 @@
extends Control
@onready var health = $VBoxContainer/HBoxContainer/MarginContainer/hEALTH
@onready var time = $VBoxContainer/HBoxContainer/MarginContainer2/TIME
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
health.text = "boombastic"
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func updatehealth(_damage,_health)->void:
health.text = "Health"+str(_health)
func updatetime (timeavailable)->void:
time.text = str(timeavailable)
+1
View File
@@ -0,0 +1 @@
uid://dlajwbi28mo3c