public override void _Ready() { CrashAudio = GetNode <AudioStreamPlayer2D>("CrashAudio"); HookLaunchAudio = GetNode <AudioStreamPlayer2D>("HookLaunchAudio"); PickupCreatureAudio = GetNode <AudioStreamPlayer2D>("PickupCreatureAudio"); CreaturesCaught = new Godot.Collections.Dictionary <string, int>(); CreaturesCost = new Godot.Collections.Dictionary <string, int>(); Hookable = true; Hook = GetNode <Node2D>("Hook"); HookChain = GetNode <ColorRect>("HookChain"); OriginalHookChainHeight = HookChain.GetRect().Size.y; HookHitBoxCollision = GetNode <CollisionShape2D>("Hook/Claw/Area2D/CollisionShape2D"); HookHitBoxCollision.Disabled = true; HookLaunch = GetNode <Tween>("HookLaunch"); HookRetract = GetNode <Tween>("HookRetract"); HookChainLaunch = GetNode <Tween>("HookChainLaunch"); HookChainRetract = GetNode <Tween>("HookChainRetract"); OriginalHookPosition = Hook.Position; CrashParticles = GetNode <Particles2D>("CrashParticles"); Bubbler = GetNode <Particles2D>("Bubbler"); }
public override void _Input(InputEvent e) { if (e is InputEventMouseButton m) { if (Input.IsMouseButtonPressed((int)ButtonList.Left) && Rect.GetRect().HasPoint(m.Position)) { Clicked?.Invoke(Position); } } }
// // Called every frame. 'delta' is the elapsed time since the previous frame. public override void _Process(float delta) { Vector2 playerVec = new Vector2(); if (!GameIsStopped) { if (Input.IsActionPressed("ui_left")) { playerVec = new Vector2(-1, 0); } if (Input.IsActionPressed("ui_right")) { playerVec = new Vector2(1, 0); } if (!OnSurface) { if ((Input.IsActionPressed("ui_accept") || Input.IsActionPressed("ui_select")) && Hookable) { Hookable = false; GD.Print("activated"); int hookLength = 100; HookChainLaunch.InterpolateProperty(HookChain, "rect_size:y", HookChain.GetRect().Size.y, HookChain.GetRect().Size.y + hookLength, 1, Tween.TransitionType.Quad, Tween.EaseType.InOut); HookChainLaunch.Start(); HookLaunch.InterpolateProperty(Hook, "position", OriginalHookPosition, new Vector2(OriginalHookPosition.x, OriginalHookPosition.y + hookLength), 1, Tween.TransitionType.Quad, Tween.EaseType.InOut); HookLaunch.Start(); HookLaunchAudio.Play(); HookHitBoxCollision.Disabled = false; } } MoveAndCollide(playerVec * delta * MOVE_SPEED); } }