I-HATE-THE-FUCKING-HORSE-GAME/ball.gd
pennyrigate ae7b962896 boogit
2025-07-23 17:19:33 -04:00

55 lines
1.4 KiB
GDScript

extends RigidBody2D
signal clicked
var held = false
@onready var Blood = preload("res://blood.tscn")
var contact_point = Vector2.ZERO
func _on_input_event(viewport, event, shape_idx):
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
if event.pressed:
print("clicked")
clicked.emit(self)
func _physics_process(delta):
if held:
var mouse_position = clamp(get_global_mouse_position(),Vector2.ZERO,Vector2(640,480))
global_transform.origin = mouse_position
func pickup():
if held:
return
freeze = true
held = true
func drop(impulse=Vector2.ZERO):
if held:
freeze = false
apply_central_impulse(impulse)
held = false
func _integrate_forces(state):
contact_point = state.get_contact_collider_position(0)
func _on_body_entered(body: Node) -> void:
if abs(linear_velocity.x) > 200 or abs(linear_velocity.y) > 200:
%AudioStreamPlayer.play()
%Impact_noise.play()
%Timer.start()
var blood = Blood.instantiate()
var random_position = Vector2(randf_range(-70,70),randf_range(-50,50))
blood.global_position = contact_point + random_position
get_parent().add_child(blood)
battle_damage()
func battle_damage():
print(%Bruising.modulate.a)
if %Bruising.modulate.a < 1:
%Bruising.modulate.a += randf_range(0,0.1)
if %Bruising.modulate.a > 0.5:
%Bleeding.modulate.a += randf_range(0,0.05)
if %Bleeding.modulate.a > 0.9:
%HeavyBleeding.modulate.a += randf_range(0,0.025)