Friday, 15 August 2025 23:08:08

This commit is contained in:
2025-08-15 23:08:10 -04:00
parent 8a2ad448fd
commit a47a6331ee
129 changed files with 515 additions and 2535 deletions

13
Gameplay/Arena.cs Normal file
View File

@@ -0,0 +1,13 @@
using Godot;
using System;
public partial class Arena : Sprite2D
{
public override void _Ready()
{
Position = Globals.Instance._screenCenter;
}
}

1
Gameplay/Arena.cs.uid Normal file
View File

@@ -0,0 +1 @@
uid://pxi753iie75t

View File

@@ -1,181 +0,0 @@
using Godot;
using System;
using System.Runtime;
/// TODO create a few types of balls
public partial class Ball : RigidBody2D
{
[Signal]
public delegate void OnHoverEventHandler(Ball THIS, bool HOVERED);
[Signal]
public delegate void OnCollisionEventHandler(Ball THIS, Ball TARGET);
[Signal]
public delegate void OnLaunchEventHandler(Ball THIS);
[Signal]
public delegate void OnMovementEventHandler(Ball THIS, bool MOVING);
public bool _active = false, _placed = false, _potted = false, _available = false, _hovered = false, _selected = false, _aimed = false, _launched = false, _moving = false, _isCue = false;
public float _moveThreshold = 5.0f;
public string _id, _imagePath = null;
public Vector2I _rackPosition = new Vector2I(0, 0);
public Manager _owner = null;
public override void _Process(double DELTA_)
{
if (LinearVelocity.Length() > 0 && LinearVelocity.Length() < _moveThreshold)
{
Sleeping = true;
if (_moving)
{
ProcessOnStop();
_moving = false;
EmitSignal(SignalName.OnMovement, this, false);
if (_launched)
{
_launched = false;
}
}
}
else if (LinearVelocity.Length() >= _moveThreshold && !Sleeping)
{
ProcessOnMovement();
if (!_moving)
{
_moving = true;
EmitSignal(SignalName.OnMovement, this, true);
}
}
}
public void Launch()
{
ProcessOnLaunch();
}
public void Pot()
{
Sleeping = true;
_active = false;
_placed = false;
_potted = true;
_moving = false;
}
public void SetSprite(string PATH)
{
_imagePath = PATH;
GetNode<Sprite2D>("Image").Texture = GD.Load<Texture2D>(PATH);
}
private void OnBodyEntered(Node2D TARGET)
{
if (TARGET is Ball)
{
Ball target = (Ball)TARGET;
ProcessOnCollision(target);
}
}
private void OnMouseEntered()
{
if (_active)
{
_hovered = true;
EmitSignal(SignalName.OnHover, this, true);
}
}
private void OnMouseExited()
{
if (_active)
{
_hovered = false;
EmitSignal(SignalName.OnHover, this, false);
}
}
//Processes
// public virtual void ProcessOnAdd()
// {
// }
// public virtual void ProcessOnBattleStart()
// {
// }
// public virtual void ProcessOnBattleEnd()
// {
// }
public virtual void ProcessOnCollision(Ball TARGET)
{
EmitSignal(SignalName.OnCollision, this, TARGET);
}
// public virtual void ProcessOnCreation()
// {
// }
// public virtual void ProcessOnCritical()
// {
// }
// public virtual void ProcessOnDeath()
// {
// }
// public virtual void ProcessOnDefend()
// {
// }
// public virtual void ProcessOnExpiration()
// {
// }
public virtual void ProcessOnLaunch()
{
_launched = true;
EmitSignal(SignalName.OnLaunch, this);
}
public virtual void ProcessOnMovement()
{
}
// public virtual void ProcessOnRemove()
// {
// }
// public virtual void ProcessOnSell()
// {
// }
public virtual void ProcessOnStop()
{
}
// public virtual void ProcessOnTurnEnd()
// {
// }
// public virtual void ProcessOnTurnStart()
// {
// }
}

View File

@@ -1 +0,0 @@
uid://dgdxx8tceiljg

View File

@@ -1,7 +0,0 @@
using Godot;
using System;
public partial class BallReturn : Panel
{
public int _returnCount = 0;
}

View File

@@ -1 +0,0 @@
uid://bbcrvn06t2aem

View File

@@ -1,38 +0,0 @@
using Godot;
using System;
public partial class BallSprite : Area2D
{
[Signal]
public delegate void OnHoverEventHandler(BallSprite THIS, bool HOVERED);
[Signal]
public delegate void OnUnhoverEventHandler();
public bool _active = false, _hovered = false, _held = false;
public string _id, _imagePath;
public Vector2I _rackPosition = new Vector2I(0, 0);
public Manager _owner = null;
public void SetSprite(string PATH)
{
_imagePath = PATH;
GetNode<Sprite2D>("Image").Texture = GD.Load<Texture2D>(PATH);
}
private void OnMouseEntered()
{
if (_active)
{
_hovered = true;
EmitSignal(SignalName.OnHover, this, true);
}
}
private void OnMouseExited()
{
if (_active)
{
_hovered = false;
EmitSignal(SignalName.OnHover, this, false);
}
}
}

View File

@@ -1 +0,0 @@
uid://c2rt5f831l1l1

View File

@@ -6,16 +6,9 @@ using System.Linq;
public partial class Battle : Node
{
public bool _current;
public Vector2 _startPosition = new Vector2(890, 340);
public List<Sprite2D> _potted = new();
public List<Ball> _balls = new();
public Table _table;
public List<Pocket> _pockets = new();
public override void _Ready()
{
_table = GetNode<Table>("Table");
_pockets = _table.GetNode<Node2D>("Pockets").GetChildren().Select(n => (Pocket)n).ToList();
}
@@ -27,7 +20,6 @@ public partial class Battle : Node
public void Start()
{
_current = true;
Globals.Instance._currentBattle = this;
}
}

View File

@@ -1,77 +0,0 @@
using Godot;
using System;
public partial class Cue : Sprite2D
{
[Signal]
public delegate void OnShootEventHandler(Vector2 IMPULSE);
public bool _donned = false, _equiped = false, _sending = false;
public float _power = 0.0f, _maxPower = 20.0f;
Vector2 _direction;
public ProgressBar _progressBar;
public override void _Process(double DELTA_)
{
if (!_sending)
{
Vector2 mousePosition = GetViewport().GetMousePosition();
Offset = new Vector2(_power * -10, 0);
LookAt(mousePosition);
if (Input.IsActionJustPressed("scroll_down"))
{
_power = Math.Min(_power + (1f * (Input.IsActionPressed("shift") ? 5 : 1) / (Input.IsActionPressed("ctrl") ? 10 : 1)), _maxPower);
}
else if (Input.IsActionJustPressed("scroll_up"))
{
_power = Math.Max(_power - (1f * (Input.IsActionPressed("shift") ? 5 : 1) / (Input.IsActionPressed("ctrl") ? 10 : 1)), 0);
}
if (Input.IsActionJustReleased("left_click"))
{
if (_power > 0f)
{
_sending = true;
_direction = mousePosition - Position;
}
}
}
else
{
if (Offset.X < 0)
{
Offset = new Vector2(Math.Min(0, Offset.X + _power * 2), 0);
}
else
{
_sending = false;
Offset = Vector2.Zero;
EmitSignal(SignalName.OnShoot, _power * _direction);
_power = 0;
}
}
}
public void Doff()
{
_power = 0;
_donned = false;
SetProcess(false);
Hide();
//_progressBar.Hide();
}
public void Don(Vector2 POSITION)
{
Position = POSITION;
_donned = true;
SetProcess(true);
Show();
//_progressBar.Position = new Vector2(CUEBALL.Position.X - _progressBar.Size.X / 2, CUEBALL.Position.Y + _progressBar.Size.Y / 2);
//_progressBar.Show();
}
}

View File

@@ -1 +0,0 @@
uid://ian15gmia0uv

34
Gameplay/Effect.cs Normal file
View File

@@ -0,0 +1,34 @@
using Godot;
using System;
using System.Collections.Generic;
public partial class Effect : Node
{
public List<Trigger> _trigger;
public Worker _workerOwner;
public void SetOwner()
{
}
public virtual void TriggerEffect()
{
}
public enum Trigger
{
Movement,
Collision,
WallCollision,
Death,
Launch,
Stop,
BattleStart,
BattleEnd,
Critical,
Defend,
Time
}
}

1
Gameplay/Effect.cs.uid Normal file
View File

@@ -0,0 +1 @@
uid://dtccp5uxgkjwm

View File

@@ -0,0 +1,21 @@
using Godot;
using System;
using System.Collections.Generic;
public partial class BasicAttack : Effect
{
public BasicAttack() : base()
{
_trigger.Add(Trigger.Collision);
}
public override void TriggerEffect()
{
if (_workerOwner._collisionTarget is Worker)
{
int damage = _workerOwner._aptitude;
((Worker)_workerOwner._collisionTarget).ChangeHealth(damage, _workerOwner);
}
}
}

View File

@@ -0,0 +1 @@
uid://2ilonmgvkayp

View File

@@ -5,17 +5,19 @@ using System.Collections.Generic;
public partial class Globals : Node
{
public static Globals Instance;
public bool _anyMovement = false;
public Viewport _viewport;
public Vector2 _screenSize;
public Vector2 _screenCenter;
public Battle _currentBattle;
public Random _random = new();
public PackedScene _workerScene = ResourceLoader.Load<PackedScene>("res://Gameplay/worker.tscn");
public PackedScene _tchotchkeScene = ResourceLoader.Load<PackedScene>("res://Gameplay/tchotchke.tscn");
public override void _Ready()
{
Instance = this;
_viewport = GetViewport();
_screenSize = _viewport.GetVisibleRect().Size;
_screenCenter = _screenSize / 2;
}

View File

@@ -13,9 +13,8 @@ public partial class Main : Node
_currentBattle = GetNode<Battle>("Battle");
_player = GetNode<Manager>("Player");
_currentBattle.Start();
_player.Start(_currentBattle.GetNode<Table>("Table"));
}
public override void _Process(double DELTA_)

View File

@@ -9,219 +9,52 @@ public partial class Manager : Node
public bool _dead, _ready;
public int _ballsMoving = 0, _health = 10, _healthMax;
public string _imagePath;
public Node _hoveredNode = null;
public Node _selectedNode = null;
public CollisionShape2D _startArea;
public Cue _cue;
public ManagerPanel _managerPanel = null;
public BallReturn _ballReturn = null;
public Rack _rack = null;
public Table _table;
public Area2D _kitchen;
public Ball _cueBall;
public BallSprite _cueBallSprite;
public List<Ball> _balls = new();
public List<BallSprite> _ballSprites = new();
public Manager _opponent;
public List<Worker> _workers = new();
public List<Vector2I> _initialRackPositions =
[
new Vector2I(1, 1),
new Vector2I(3, 1),
new Vector2I(4, 1),
new Vector2I(2, 2),
new Vector2I(4, 2),
new Vector2I(1, 3),
new Vector2I(2, 4),
new Vector2I(2, 3),
new Vector2I(2, 1),
new Vector2I(5, 1),
new Vector2I(1, 2),
new Vector2I(3, 2),
new Vector2I(3, 3),
new Vector2I(1, 4),
new Vector2I(1, 5)
];
// denoted by c1r1 notation where (3,1) translates to row 1 column 3
// column 0 represents the ball return where the row represents its order in the return,
// cue ball reserves the position (0,0)
// (0, 1+) denotes a ballin the ball return
// (0,-1+) denotes a ball that is not on the screen, the closer to 0 numbers get placed in the return first if the cool down is equal
// numbers should increase from top to bottom and left to right from the player's perspective
//
// PACKED SCENES
public PackedScene _ballScene = ResourceLoader.Load<PackedScene>("res://Gameplay/ball.tscn");
public PackedScene _ballSpriteScene = ResourceLoader.Load<PackedScene>("res://Gameplay/ball_sprite.tscn");
public PackedScene _cueScene = ResourceLoader.Load<PackedScene>("res://Gameplay/cue.tscn");
public PackedScene _workerScene = ResourceLoader.Load<PackedScene>("res://Gameplay/worker.tscn");
public List<Tchotchke> _tchotckes = new();
public override void _Ready()
{
_healthMax = _health;
_cue = GetNode<Cue>("Cue");
_cue.OnShoot += OnCueShoot;
_cue.Doff();
SetSprite("res://art/ness.png");
_managerPanel = GetNode<ManagerPanel>("Panel");
_ballReturn = _managerPanel.GetNode<BallReturn>("BallReturn");
_rack = _managerPanel.GetNode<Rack>("Rack");
AddBall("res://art/cue_ball.png", new Vector2I(0, 0), true);
for (int i = 1; i <= 15; i++)
{
AddBall("res://art/ball_" + i + ".png", _initialRackPositions[i - 1], false);
}
_managerPanel.SetManager(this);
Worker newWorker = Globals.Instance._workerScene.Instantiate<Worker>();
newWorker.Position = Globals.Instance._screenCenter + new Vector2(0, 100);
newWorker._id = 1;
AddChild(newWorker);
_workers.Add(newWorker);
newWorker = Globals.Instance._workerScene.Instantiate<Worker>();
newWorker.Position = Globals.Instance._screenCenter - new Vector2(0, 100);
newWorker._id = 2;
AddChild(newWorker);
_workers.Add(newWorker);
Tchotchke newTchotchke = Globals.Instance._tchotchkeScene.Instantiate<Tchotchke>();
newTchotchke.Position = new Vector2(Globals.Instance._screenSize.X - 100, Globals.Instance._screenCenter.Y);
AddChild(newTchotchke);
_tchotckes.Add(newTchotchke);
}
public override void _Process(double DELTA_)
{
if (_ballsMoving == 0)
{
if (_cueBall._placed)
{
if (_selectedNode is Ball)
{
if (Input.IsActionJustReleased("right_click"))
{
((Ball)_selectedNode)._selected = false;
_selectedNode = null;
_cue.Doff();
}
if (Input.IsActionJustReleased("left_click") && _cue._power == 0)
{
((Ball)_selectedNode)._selected = false;
_cue.Doff();
if (_hoveredNode != null)
{
_selectedNode = (Ball)_hoveredNode;
((Ball)_selectedNode)._selected = true;
if (_selectedNode == _cueBall)
{
_cue.Don(_cueBall.Position);
}
}
else
{
_selectedNode = null;
}
}
}
else if (_hoveredNode is Ball)
{
if ((Ball)_selectedNode != _hoveredNode && _cue._power == 0)
{
if (Input.IsActionJustReleased("left_click"))
{
_selectedNode = (Ball)_hoveredNode;
((Ball)_selectedNode)._selected = true;
if (_selectedNode == _cueBall)
{
_cue.Don(((Ball)_selectedNode).Position);
}
else
{
_cue.Doff();
}
}
}
}
else if (_selectedNode is BallSprite)
{
Vector2 mousePosition = GetViewport().GetMousePosition();
((BallSprite)_selectedNode).Position = mousePosition;
if (Input.IsActionJustReleased("left_click"))
{
if (!_table._kitchenHovered)
{
PlaceBall(((BallSprite)_selectedNode), mousePosition);
_hoveredNode = null;
_selectedNode = null;
}
}
}
else if (_hoveredNode is BallSprite)
{
if (Input.IsActionJustReleased("left_click"))
{
_selectedNode = (BallSprite)_hoveredNode;
}
}
}
else
if (_workers.All(w => w._placed && w._primed))
{
for (int i = 0; i < _workers.Count; i++)
{
if (_selectedNode == _cueBallSprite)
{
Vector2 mousePosition = GetViewport().GetMousePosition();
_cueBallSprite.Position = mousePosition;
if (Input.IsActionJustReleased("left_click"))
{
if (_table._kitchenHovered)
{
PlaceBall(_cueBallSprite, mousePosition);
_hoveredNode = null;
_selectedNode = null;
}
}
}
else if (_hoveredNode == _cueBallSprite)
{
if (Input.IsActionJustReleased("left_click"))
{
_selectedNode = _cueBallSprite;
}
}
_workers[i].Launch();
}
}
}
public virtual void AddBall(string IMAGEPATH, Vector2I RACKPOSITION, bool ISCUE)
{
Ball newBall;
BallSprite newBallSprite;
Guid ballGuid = Guid.NewGuid();
string ballId = ballGuid.ToString();
newBall = _ballScene.Instantiate<Ball>();
newBall.SetSprite(IMAGEPATH);
newBall._rackPosition = RACKPOSITION;
newBall._isCue = ISCUE;
newBall._owner = this;
newBall._id = ballId;
newBall.OnHover += SetHovered;
newBall.OnMovement += MovingChange;
if (newBall._isCue)
{
_cueBall = newBall;
}
else
{
_balls.Add(newBall);
}
newBallSprite = _ballSpriteScene.Instantiate<BallSprite>();
newBallSprite.SetSprite(newBall._imagePath);
newBallSprite._rackPosition = newBall._rackPosition;
newBallSprite._owner = this;
newBallSprite._id = newBall._id;
newBallSprite.OnHover += SetHovered;
if (newBall._isCue)
{
_cueBallSprite = newBallSprite;
}
else
{
_ballSprites.Add(newBallSprite);
_rack.SetSprite((int)newBallSprite._rackPosition.Y, (int)newBallSprite._rackPosition.X, newBallSprite._imagePath, newBall._id);
}
}
public void ChangeHealth(int CHANGE)
{
_health += CHANGE;
@@ -236,180 +69,10 @@ public partial class Manager : Node
GetNode<ManagerPanel>("Panel").SetValue(_health);
}
public BallSprite GetSpriteFromBall(Ball BALL)
{
BallSprite ballSprite = _cueBallSprite._id == BALL._id ? _cueBallSprite : _ballSprites.Single(b => b._id == BALL._id);
return ballSprite;
}
public Ball GetBallFromSprite(BallSprite BALLSPRITE)
{
Ball ball = _cueBall._id == BALLSPRITE._id ? _cueBall : _balls.Single(b => b._id == BALLSPRITE._id);
return ball;
}
public void MovingChange(Ball BALL, bool MOVING)
{
if (MOVING)
{
_ballsMoving++;
}
else
{
_ballsMoving--;
}
}
public virtual void PlaceBall(BallSprite BALLSSPRITE, Vector2 POSITION)
{
Ball ball = GetBallFromSprite(BALLSSPRITE);
ball._available = true;
ball.Position = POSITION;
ball._active = true;
ball._placed = true;
ball._potted = false;
ball._active = true;
ball.Rotation = 0;
if (!GetChildren().Contains(ball))
{
AddChild(ball);
}
BALLSSPRITE._active = false;
if (GetChildren().Contains(BALLSSPRITE))
{
RemoveChild(BALLSSPRITE);
}
_ballReturn._returnCount = _balls.Where(b => b._potted).ToList().Count;
// _ready = _ballReturn._returnCount > 0;
}
public virtual void PotBall(Ball BALL, Pocket POCKET)
{
BALL.Sleeping = true;
BALL._available = false;
BALL._moving = false;
BALL._active = false;
BALL._placed = false;
BALL._potted = true;
BALL._active = false;
MovingChange(BALL, false);
if (GetChildren().Contains(BALL))
{
RemoveChild(BALL);
}
BallSprite ballSprite = GetSpriteFromBall(BALL);
int pottedCount = _ballReturn._returnCount;
Vector2 position;
if (BALL._isCue)
{
position = _kitchen.GlobalPosition;
}
else
{
position = new Vector2(_ballReturn.GlobalPosition.X + _ballReturn.Size.X / 2, _ballReturn.GlobalPosition.Y + 50 * (pottedCount + 1));
}
ballSprite.Position = position;
ballSprite._active = true;
if (!GetChildren().Contains(ballSprite))
{
CallDeferred(MethodName.AddChild, ballSprite);
}
_ballReturn._returnCount = _balls.Where(b => b._potted).ToList().Count;
// _ready = _ballReturn._returnCount > 0;
}
public void SetHovered(Node NODE, bool HOVERED)
{
if (HOVERED)
{
if (_hoveredNode == null)
{
if (NODE is Ball)
{
_hoveredNode = (Ball)NODE;
}
else if (NODE is BallSprite)
{
_hoveredNode = (BallSprite)NODE;
}
}
}
else
{
_hoveredNode = null;
}
}
// public void SetRack()
// {
// for (int i = 0; i < _ballSprites.Count; i++)
// {
// if ((int)_ballSprites[i]._rackPosition.Y > 0 && (int)_ballSprites[i]._rackPosition.X > 0)
// {
// _rack.SetSprite((int)_ballSprites[i]._rackPosition.Y, (int)_ballSprites[i]._rackPosition.X, _ballSprites[i]._imagePath);
// }
// }
// }
public void SetSprite(string PATH)
{
_imagePath = PATH;
}
public virtual void Start(Table TABLE)
{
_table = TABLE;
int diameter = 36;
int rows = _balls.Max(b => b._rackPosition.Y);
BallSprite rackBallSprite;
int r, c;
for (int i = 0; i < _ballSprites.Count; i++)
{
rackBallSprite = _ballSprites[i];
c = rackBallSprite._rackPosition.X;
r = Math.Abs(rackBallSprite._rackPosition.Y - rows);
if (c > 0)
{
Vector2 position = new Vector2(TABLE.GlobalPosition.X - (r * (diameter / 2)) + ((c - 1) * diameter), TABLE.GlobalPosition.Y - TABLE.Texture.GetSize().Y / 4 - (r * diameter));
PlaceBall(rackBallSprite, position);
}
}
TABLE.OnBallPotted += PotBall;
// PLAYER.PotBall();
// SetRack();
_kitchen = _table.GetNode<Area2D>("Kitchen");
_cueBallSprite.Position = _kitchen.GlobalPosition;
_cueBallSprite._active = true;
AddChild(_cueBallSprite);
}
private void OnCueShoot(Vector2 IMPULSE)
{
if (_selectedNode is Ball)
{
Ball selectedBall = (Ball)_selectedNode;
if (selectedBall != null && selectedBall._placed)
{
selectedBall.ApplyCentralImpulse(IMPULSE);
selectedBall._selected = false;
selectedBall.Launch();
_selectedNode = null;
_cue.Doff();
}
}
}
}

View File

@@ -1,22 +0,0 @@
using Godot;
using System;
public partial class Pocket : Area2D
{
[Signal]
public delegate void OnBallPottedEventHandler(Ball BALL, Pocket THIS);
public override void _Ready()
{
BodyEntered += BallPotted;
}
public void BallPotted(Node NODE)
{
if (NODE is Ball)
{
EmitSignal(SignalName.OnBallPotted, (Ball)NODE, this);
}
}
}

View File

@@ -1 +0,0 @@
uid://cyem70f52xfps

View File

@@ -1,12 +0,0 @@
using Godot;
using System;
public partial class PowerBar : ProgressBar
{
public override void _Process(double DELTA_)
{
// Value = GetParent().GetNode<Manager>("Manager").GetNode<Cue>("Cue")._power / GetParent().GetNode<Manager>("Manager").GetNode<Cue>("Cue")._maxPower * 100;
}
}

View File

@@ -1 +0,0 @@
uid://dbfpn1p62siat

View File

@@ -1,12 +0,0 @@
using Godot;
using System;
public partial class Rack : Sprite2D
{
public void SetSprite(int ROW, int COLUMN, string IMAGEPATH, string ID)
{
BallSprite ballSprite = GetNode<Node2D>("R" + ROW).GetNode<BallSprite>("C" + COLUMN);
ballSprite._id = ID;
ballSprite.SetSprite(IMAGEPATH);
}
}

View File

@@ -1 +0,0 @@
uid://blwghh5lu3w3r

View File

@@ -1,47 +0,0 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Table : Sprite2D
{
[Signal]
public delegate void OnBallPottedEventHandler(Ball THIS, Pocket POCKET);
public bool _kitchenHovered;
List<Pocket> _pockets;
public override void _Ready()
{
_pockets = GetNode<Node2D>("Pockets")
.GetChildren()
.Select(n => (Pocket)n)
.ToList<Pocket>();
for (int i = 0; i < _pockets.Count; i++)
{
_pockets[i].OnBallPotted += BallPotted;
}
GetNode<Area2D>("Kitchen").MouseEntered += KitchenHovered;
GetNode<Area2D>("Kitchen").MouseExited += KitchenUnhovered;
}
public void BallPotted(Node NODE, Pocket POCKET)
{
if (NODE is Ball)
{
EmitSignal(SignalName.OnBallPotted, (Ball)NODE, POCKET);
}
}
public void KitchenHovered()
{
_kitchenHovered = true;
}
public void KitchenUnhovered()
{
_kitchenHovered = false;
}
}

View File

@@ -1 +0,0 @@
uid://82h0dmyohfj1

82
Gameplay/Tchotchke.cs Normal file
View File

@@ -0,0 +1,82 @@
using Godot;
using System;
public partial class Tchotchke : StaticBody2D
{
public bool _hovered = false, _held = false;
public override void _Process(double DELTA_)
{
if (_held)
{
GlobalPosition = GetGlobalMousePosition();
if (Input.IsActionJustReleased("left_click"))
{
Transform2D newTransform = GlobalTransform;
newTransform.Origin = Position;
GlobalTransform = newTransform;
Drop();
}
}
else
{
if (_hovered)
{
if (Input.IsActionJustPressed("left_click"))
{
Hold();
}
if (Input.IsActionJustPressed("scroll_up"))
{
Rotation -= 1;
}
if (Input.IsActionJustPressed("scroll_down"))
{
Rotation += 1;
}
}
}
}
public void Drop()
{
if (_held)
{
_held = false;
}
}
public void Hold()
{
if (_held)
{
return;
}
_held = true;
}
// Processes
// PRIVATE METHODS
private void OnMouseEntered()
{
_hovered = true;
}
private void OnMouseExited()
{
_hovered = false;
}
private void OnBodyEntered(Node NODE)
{
if (NODE is Worker)
{
// _rotationalForce *= 0.8f;
// Vector2 rotatedForce = LinearVelocity.Rotated(((Worker)NODE)._rotationalForce);
// ApplyCentralForce(rotatedForce);
}
}
}

View File

@@ -0,0 +1 @@
uid://qmgo5eukvn6y

View File

@@ -1,44 +1,190 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Diagnostics;
using System.Linq;
public partial class Worker : Node2D
public partial class Worker : RigidBody2D
{
[Signal]
public delegate void DamageOverflowEventHandler(int OVERFLOW);
public bool _dead = false, _hovered = false;
public int _health = 5, _healthMax;
public bool _dead = false, _hovered = false, _held = false, _placed = false, _selected = false, _primed = false, _moving = false;
public int _health, _healthMax, _aptitude, _agility, _ardor, _accumen, _awareness, _appeal, _id;
public float _rotationalForce = 0;
public Vector2 _force = Vector2.Zero;
public Node _collisionTarget;
public Sprite2D _image;
public Manager _manager;
public List<Effect> _effects = new();
public override void _Ready()
{
_health = 10;
_aptitude = 5;
_agility = 5;
_ardor = 5;
_accumen = 5;
_awareness = 5;
_appeal = 5;
_healthMax = _health;
_image = GetNode<Sprite2D>("Sprite2D");
}
public virtual void ChangeDefense(int CHANGE)
public override void _Process(double DELTA_)
{
_health += CHANGE;
_health = Math.Min(_health, _healthMax);
if (_health < 0)
if (!_moving)
{
EmitSignal(SignalName.DamageOverflow, _health);
_health = 0;
if (!_placed)
{
if (!_held)
{
if (_hovered)
{
if (Input.IsActionJustPressed("left_click"))
{
Hold();
}
}
}
}
else
{
if (_selected)
{
Vector2 mousePosition = GetGlobalMousePosition();
LookAt(mousePosition);
if (Input.IsActionJustReleased("left_click"))
{
_selected = false;
_force = (GlobalPosition - mousePosition) * 100;
_rotationalForce = 5f;
_primed = true;
}
}
else if (_hovered)
{
if (Input.IsActionJustPressed("left_click"))
{
_selected = true;
}
}
}
}
else
{
// Vector2 towardCenter = (Globals.Instance._screenCenter - GlobalPosition).Normalized();
// ApplyCentralForce(towardCenter * 100);
_image.Rotate(_rotationalForce);
_rotationalForce -= 0.5f / 60;
if (_rotationalForce <= 0f)
{
Stop();
}
}
}
public void SetSprite(string PATH)
public override void _PhysicsProcess(double DELTA_)
{
GetNode<Sprite2D>("Image").Texture = GD.Load<Texture2D>(PATH);
if (_held)
{
GlobalPosition = GetGlobalMousePosition();
if (Input.IsActionJustReleased("left_click"))
{
Transform2D newTransform = GlobalTransform;
newTransform.Origin = Position;
GlobalTransform = newTransform;
Drop();
}
}
}
public void ChangeHealth(int CHANGE, Node CHANGEMAKER)
{
if (_health <= 0 && CHANGE < 0)
{
// knock the piece off the board and out for the round!
// process on knockout
}
_health += CHANGE;
if (_health <= 0)
{
_dead = true;
_health = 0;
TriggerSpecificEffects(Effect.Trigger.Death);
}
}
public void Drop()
{
if (_held)
{
_held = false;
_placed = true;
Freeze = false;
}
}
public void Hold()
{
if (_held)
{
return;
}
Freeze = true;
_held = true;
}
public void Launch()
{
GravityScale = 1.0f;
_moving = true;
ApplyCentralForce(_force);
_force = Vector2.Zero;
_primed = false;
TriggerSpecificEffects(Effect.Trigger.Launch);
}
public void Stop()
{
GravityScale = 0.0f;
Sleeping = true;
_moving = false;
_rotationalForce = 0f;
TriggerSpecificEffects(Effect.Trigger.Stop);
}
public void TriggerSpecificEffects(Effect.Trigger TRIGGER)
{
List<Effect> triggeredEffects = _effects.Where(e => e._trigger.IndexOf(TRIGGER) > -1).ToList();
for (int i = 0; i < triggeredEffects.Count; i++)
{
triggeredEffects[i].TriggerEffect();
}
}
// PRIVATE METHODS
private void OnMouseEntered()
{
_hovered = true;
}
private void OnMouseExited()
{
_hovered = false;
}
private void OnBodyEntered(Node NODE)
{
if (NODE is Worker)
{
_collisionTarget = NODE;
TriggerSpecificEffects(Effect.Trigger.Stop);
_rotationalForce *= 0.8f;
Vector2 rotatedForce = LinearVelocity.Rotated(((Worker)NODE)._rotationalForce);
ApplyCentralForce(rotatedForce);
_collisionTarget = null;
}
}
// Processes
// public virtual void ProcessOnCollision(Ball TARGET)
// {
// Worker TARGETWORKER = TARGET.GetParent<Worker>();
// if (_launched)
// {
// TARGETWORKER.ChangeDefense(-3);
// }
// }
}

View File

@@ -1 +1 @@
uid://b4mr2vn8mw6r4
uid://bk6qk4rjmsvtn

36
Gameplay/arena.tscn Normal file
View File

@@ -0,0 +1,36 @@
[gd_scene load_steps=4 format=3 uid="uid://demwh8ek37mnx"]
[ext_resource type="Script" uid="uid://pxi753iie75t" path="res://Gameplay/Arena.cs" id="1_3it5u"]
[ext_resource type="Texture2D" uid="uid://nxo2tpgmobli" path="res://art/arena.png" id="1_ya27x"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ya27x"]
radius = 400.25
[node name="Arena" type="Sprite2D"]
texture = ExtResource("1_ya27x")
script = ExtResource("1_3it5u")
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"]
visible = false
polygon = PackedVector2Array(-2, -303, 150, -302, 150, -372, 218, -336, 268, -296, 310, -254, 347, -201, 373, -146, 390, -85, 398, -33, 400, 1, 398, 30, 394, 69, 388, 99, 377, 135, 355, 184, 339, 213, 312, 250, 291, 276, 268, 298, 249, 314, 209, 341, 183, 356, 167, 364, 150, 370, 150, 301, -2, 300, -1, 791, 937, 791, 935, -974, -5, -990)
[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="StaticBody2D"]
visible = false
rotation = 3.14159
scale = Vector2(1, -1)
polygon = PackedVector2Array(-2, -303, 150, -302, 150, -372, 218, -336, 268, -296, 310, -254, 347, -201, 373, -146, 390, -85, 398, -33, 400, 1, 398, 30, 394, 69, 388, 99, 377, 135, 355, 184, 339, 213, 312, 250, 291, 276, 268, 298, 249, 314, 209, 341, 183, 356, 167, 364, 150, 370, 150, 301, -2, 300, -1, 791, 937, 791, 935, -974, -5, -990)
[node name="CollisionPolygon2D3" type="CollisionPolygon2D" parent="StaticBody2D"]
polygon = PackedVector2Array(-800, 800, -153, 800, -153, 366.8, -198.5, 344, -200.4, 344, -245.4, 312, -247.2, 312, -295.2, 266, -296, 266, -324, 230, -324.9, 230, -343.9, 199, -344.7, 199, -362.7, 162, -363.6, 162, -379.6, 117, -380.3, 117, -393.4, 55, -394.1, 55, -398, 6, -398, -5.79999, -394, -48.9, -394, -57, -380, -114.8, -380, -118.5, -363, -160.6, -363, -163.5, -349, -189.5, -349, -191.4, -324, -229.4, -324, -231.3, -295, -265.3, -295, -267.1, -246, -312.1, -246, -312.9, -199, -343.9, -199, -344.8, -152, -366.8, -152, -298, 152, -298, 152, -366.9, 189.5, -349, 191.4, -349, 208.4, -338, 210.3, -338, 257.3, -302, 259.2, -302, 295.2, -266, 296, -266, 324, -230, 324.9, -230, 343.9, -199, 344.7, -199, 365.7, -155, 366.6, -155, 382.6, -107, 383.3, -107, 393.3, -55, 394.1, -55, 397.1, -4, 397.9, -4, 396, 28.9, 396, 39.7, 391, 68.8, 391, 75, 375, 130.7, 375, 133.6, 363, 160.6, 363, 163.3, 344, 198.5, 344, 200.3, 312, 245.4, 312, 247.2, 266, 295.2, 266, 296, 230, 324, 230, 324.9, 190, 348.9, 190, 349.7, 153.8, 365.9, 151.9, 298, -152, 298, -152, 800, 800, 800, 800, -800, -800, -800)
[node name="Area2D" type="Area2D" parent="."]
gravity_space_override = 1
gravity_point = true
gravity_point_center = Vector2(0, 0)
gravity_direction = Vector2(0, 0)
gravity = 100.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_ya27x")

View File

@@ -1,38 +0,0 @@
[gd_scene load_steps=6 format=3 uid="uid://c8n4lue2bn25n"]
[ext_resource type="Script" uid="uid://dgdxx8tceiljg" path="res://Gameplay/Ball.cs" id="1_7ritg"]
[ext_resource type="Shader" uid="uid://b6vvt5o0008ob" path="res://shaders/globe.gdshader" id="2_6v01e"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_yj7wd"]
bounce = 5.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yj7wd"]
shader = ExtResource("2_6v01e")
shader_parameter/scroll_x = 0.0
shader_parameter/scroll_y = 0.0
shader_parameter/rotation = 0.0
shader_parameter/globe_magnitude = 0.0
[sub_resource type="CircleShape2D" id="CircleShape2D_803qd"]
radius = 18.0
[node name="Ball" type="RigidBody2D" groups=["balls"]]
z_index = 1
input_pickable = true
physics_material_override = SubResource("PhysicsMaterial_yj7wd")
continuous_cd = 2
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("1_7ritg")
[node name="Image" type="Sprite2D" parent="."]
texture_filter = 1
material = SubResource("ShaderMaterial_yj7wd")
[node name="Bounds" type="CollisionShape2D" parent="."]
position = Vector2(0, -7.10543e-15)
shape = SubResource("CircleShape2D_803qd")
[connection signal="body_entered" from="." to="." method="OnBodyEntered"]
[connection signal="mouse_entered" from="." to="." method="OnMouseEntered"]
[connection signal="mouse_exited" from="." to="." method="OnMouseExited"]

View File

@@ -1,13 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://bfxav1txgaxo5"]
[ext_resource type="Script" uid="uid://bbcrvn06t2aem" path="res://Gameplay/BallReturn.cs" id="1_omsmb"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3x8cv"]
bg_color = Color(0.501407, 0.501406, 0.501406, 1)
[node name="BallReturn" type="Panel"]
offset_right = 75.0
offset_bottom = 800.0
mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_3x8cv")
script = ExtResource("1_omsmb")

View File

@@ -1,18 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://tmer0me1qpaa"]
[ext_resource type="Script" uid="uid://c2rt5f831l1l1" path="res://Gameplay/BallSprite.cs" id="1_bwons"]
[sub_resource type="CircleShape2D" id="CircleShape2D_vjx3o"]
radius = 18.0
[node name="BallSprite" type="Area2D"]
z_index = 2
script = ExtResource("1_bwons")
[node name="Image" type="Sprite2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_vjx3o")
[connection signal="mouse_entered" from="." to="." method="OnMouseEntered"]
[connection signal="mouse_exited" from="." to="." method="OnMouseExited"]

View File

@@ -1,10 +1,9 @@
[gd_scene load_steps=3 format=3 uid="uid://5ymxo45j4ryt"]
[ext_resource type="Script" uid="uid://0c1u4l8lu07h" path="res://Gameplay/Battle.cs" id="1_i431l"]
[ext_resource type="PackedScene" uid="uid://dsprg4uahkylm" path="res://Gameplay/table.tscn" id="2_fkh6t"]
[ext_resource type="PackedScene" uid="uid://demwh8ek37mnx" path="res://Gameplay/arena.tscn" id="2_fkh6t"]
[node name="Battle" type="Node" groups=["battles"]]
script = ExtResource("1_i431l")
[node name="Table" parent="." instance=ExtResource("2_fkh6t")]
position = Vector2(960, 540)
[node name="Arena" parent="." instance=ExtResource("2_fkh6t")]

View File

@@ -1,9 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://cyvwahpr2gqi6"]
[ext_resource type="Script" path="res://Gameplay/ComputerManager.cs" id="1_rwbwa"]
[ext_resource type="PackedScene" uid="uid://dm4xk16ce0j" path="res://Gameplay/cue.tscn" id="4_ugtcs"]
[node name="ComputerManager" type="Node"]
script = ExtResource("1_rwbwa")
[node name="Cue" parent="." instance=ExtResource("4_ugtcs")]

View File

@@ -1,10 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://dm4xk16ce0j"]
[ext_resource type="Texture2D" uid="uid://qs3fa665l8x2" path="res://art/cue.png" id="1_ujx86"]
[ext_resource type="Script" uid="uid://ian15gmia0uv" path="res://Gameplay/Cue.cs" id="2_dtogv"]
[node name="Cue" type="Sprite2D"]
z_index = 99
texture_filter = 1
texture = ExtResource("1_ujx86")
script = ExtResource("2_dtogv")

3
Gameplay/effect.tscn Normal file
View File

@@ -0,0 +1,3 @@
[gd_scene load_steps=0 format=3 uid="uid://bp2xesqosn4fk"]
[node name="ProcessEffect" type="Node"]

View File

@@ -1,29 +1,11 @@
[gd_scene load_steps=7 format=3 uid="uid://cdaxqopr35lll"]
[gd_scene load_steps=3 format=3 uid="uid://cdaxqopr35lll"]
[ext_resource type="Script" uid="uid://b66ysicyh0m1s" path="res://Gameplay/Manager.cs" id="1_ivgep"]
[ext_resource type="Script" uid="uid://dbfpn1p62siat" path="res://Gameplay/PowerBar.cs" id="2_2skxn"]
[ext_resource type="PackedScene" uid="uid://8kv00jc35dma" path="res://Gameplay/manager_panel.tscn" id="3_xooeg"]
[ext_resource type="PackedScene" uid="uid://dm4xk16ce0j" path="res://Gameplay/cue.tscn" id="4_bcsor"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8y33v"]
bg_color = Color(1, 1, 1, 0.458824)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vnsqa"]
bg_color = Color(0.92549, 0.0901961, 0.0627451, 1)
[node name="Manager" type="Node"]
script = ExtResource("1_ivgep")
[node name="PowerBar" type="ProgressBar" parent="."]
visible = false
z_index = 1
offset_right = 100.0
offset_bottom = 30.0
theme_override_styles/background = SubResource("StyleBoxFlat_8y33v")
theme_override_styles/fill = SubResource("StyleBoxFlat_vnsqa")
show_percentage = false
script = ExtResource("2_2skxn")
[node name="Panel" parent="." instance=ExtResource("3_xooeg")]
offset_left = 101.0
offset_top = 150.0
@@ -31,5 +13,3 @@ offset_right = 551.0
offset_bottom = 280.0
grow_horizontal = 1
grow_vertical = 1
[node name="Cue" parent="." instance=ExtResource("4_bcsor")]

View File

@@ -1,8 +1,6 @@
[gd_scene load_steps=9 format=3 uid="uid://8kv00jc35dma"]
[gd_scene load_steps=7 format=3 uid="uid://8kv00jc35dma"]
[ext_resource type="Script" uid="uid://c4ekvurl6q7jn" path="res://Gameplay/ManagerPanel.cs" id="1_8n1hc"]
[ext_resource type="PackedScene" uid="uid://cudhpkje2ax2g" path="res://Gameplay/rack.tscn" id="2_20uuj"]
[ext_resource type="PackedScene" uid="uid://bfxav1txgaxo5" path="res://Gameplay/ball_return.tscn" id="3_sx67n"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_e1ofl"]
bg_color = Color(1, 1, 1, 1)
@@ -130,99 +128,47 @@ theme_override_styles/panel = SubResource("StyleBoxFlat_j2own")
[node name="T1" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 79.0
offset_top = 28.0
offset_right = 129.0
offset_bottom = 78.0
offset_left = 63.0
offset_top = 26.0
offset_right = 213.0
offset_bottom = 176.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T1"]
position = Vector2(25, 25)
position = Vector2(75, 75)
[node name="T2" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 154.0
offset_left = 237.0
offset_top = 28.0
offset_right = 204.0
offset_bottom = 78.0
offset_right = 387.0
offset_bottom = 178.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T2"]
position = Vector2(25, 25)
position = Vector2(75, 75)
[node name="T3" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 229.0
offset_top = 28.0
offset_right = 279.0
offset_bottom = 78.0
offset_left = 60.0
offset_top = 194.0
offset_right = 210.0
offset_bottom = 344.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T3"]
position = Vector2(25, 25)
position = Vector2(75, 75)
[node name="T4" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 304.0
offset_top = 28.0
offset_right = 354.0
offset_bottom = 78.0
offset_left = 237.0
offset_top = 196.0
offset_right = 387.0
offset_bottom = 346.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T4"]
position = Vector2(25, 25)
[node name="T5" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 79.0
offset_top = 103.0
offset_right = 129.0
offset_bottom = 153.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T5"]
position = Vector2(25, 25)
[node name="T6" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 154.0
offset_top = 103.0
offset_right = 204.0
offset_bottom = 153.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T6"]
position = Vector2(25, 25)
[node name="T7" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 229.0
offset_top = 103.0
offset_right = 279.0
offset_bottom = 153.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T7"]
position = Vector2(25, 25)
[node name="T8" type="Panel" parent="Team"]
layout_mode = 0
offset_left = 304.0
offset_top = 103.0
offset_right = 354.0
offset_bottom = 153.0
theme_override_styles/panel = SubResource("StyleBoxFlat_058dj")
[node name="Image" type="Sprite2D" parent="Team/T8"]
position = Vector2(25, 25)
[node name="Rack" parent="." instance=ExtResource("2_20uuj")]
position = Vector2(107, 346)
[node name="BallReturn" parent="." instance=ExtResource("3_sx67n")]
layout_mode = 0
offset_left = 475.0
offset_right = 550.0
position = Vector2(75, 75)
[connection signal="mouse_entered" from="." to="." method="OnMouseEntered"]
[connection signal="mouse_exited" from="." to="." method="OnMouseExited"]

View File

@@ -1,208 +0,0 @@
//using Godot;
//using System;
//
//public partial class Ball : RigidBody2D
//{
//[Signal]
//public delegate void HoverEventHandler(bool tf = true);
//[Signal]
//public delegate void SelectEventHandler(bool tf = true);
//[Signal]
//public delegate void AimEventHandler(bool tf = true);
//[Signal]
//public delegate void LaunchEventHandler(bool tf = true);
//[Signal]
//public delegate void MoveEventHandler(bool tf = true);
//[Signal]
//public delegate void BumpMarbleEventHandler(Ball ball);
//[Signal]
//public delegate void DefenseDownEventHandler(int damage);
//
//public bool _holding, _placed, _hovered, _selected, _aimed, _launched, _moving;
//public int _defense, _defenseMax, _speed;
//public Vector2 _force, _velocity, _screenSize;
//
//
//public override void _Ready()
//{
//_holding = false;
//_placed = true;
//_hovered = false;
//_selected = false;
//_aimed = false;
//_launched = false;
//_moving = false;
//_defense = 10;
//_defenseMax = _defense;
//_speed = 400;
//_force = new Vector2(0,0);
//_velocity = new Vector2(0,0);
//_screenSize = GetViewportRect().Size;
//
////Hide();
//}
//
//public override void _PhysicsProcess(double delta) //THIS IS LIKE THE UPDATE FUNCTION
//{
//if (_placed)
//{
//TrySelect();
//TryAim();
//TryLaunch();
//TryMovement(delta);
//}
//else if (_holding)
//{
//GetNode<CollisionShape2D>("Bounds").Disabled = true;
//Vector2 mousePosition = GetGlobalMousePosition();
//if (Input.IsActionJustReleased("left_click"))
//{
//Start(mousePosition);
//}
//}
//}
//
//public void DefenseChange(int change)
//{
//_defense += change;
//if (_defense < 0)
//{
//EmitSignal(SignalName.DefenseDown); // transfer damage over 0 to player
//_defense = 0; // set defense back to 0
//}
//}
//
//public void Start(Vector2 position)
//{
//
//_holding = false;
//_placed = true;
//Position = position;
//Show();
//GetNode<CollisionShape2D>("Bounds").Disabled = false;
//}
//
//public void TryAim()
//{
//if (_selected && Input.IsActionPressed("left_click") && ! _hovered && !_aimed)
//{
//_aimed = true;
//EmitSignal(SignalName.Aim);
//}
//
//if (_aimed)
//{
//Vector2 mousePosition = GetGlobalMousePosition();
//_force = (Position - mousePosition) /6;
//
//if (!Input.IsActionPressed("left_click"))
//{
//if (!_hovered)
//{
//_launched = true;
//EmitSignal(SignalName.Select, false);
//}
//else
//{
//_aimed = false;
//EmitSignal(SignalName.Aim, false);
//}
//}
//}
//}
//
//public void TryLaunch()
//{
//if (_aimed && Input.IsActionJustReleased("left_click"))
//{
//_selected = false;
//EmitSignal(SignalName.Select, false);
//
//_aimed = false;
//EmitSignal(SignalName.Aim, false);
//
//_launched = true;
//EmitSignal(SignalName.Launch);
//
//ApplyCentralForce(_force * _speed);
//_force = Vector2.Zero;
//}
//}
//
//public void TryMovement(double delta)
//{
//if (LinearVelocity.Length() > 0 && !Sleeping)
//{
//if (!_moving)
//{
//_moving = true;
//EmitSignal(SignalName.Move);
//}
//}
//if (_moving)
//{
////Vector2 Scroll = -LinearVelocity / 100;
////
////Sprite2D sprite = (Sprite2D)GetNode("Texture");
////ShaderMaterial material = (ShaderMaterial)sprite.Material;
////
////float CurrentScrollX = (float)material.GetShaderParameter("scroll_x");
////material.SetShaderParameter("scroll_x", (CurrentScrollX + Scroll.X * (float)delta) % 1.0f);
////
////float CurrentScrollY = (float)material.GetShaderParameter("scroll_y");
////material.SetShaderParameter("scroll_y", (CurrentScrollY + Scroll.Y * (float)delta) % 1.0f);
//
//
//if (Sleeping)
//{
//_launched = false;
//_moving = false;
//EmitSignal(SignalName.Move, false);
//}
//}
//}
//
//public void TrySelect()
//{
//if ( _hovered)
//{
//if (Input.IsActionJustPressed("left_click") && !_selected)
//{
//_selected = true;
//EmitSignal(SignalName.Select);
//}
//}
//
//if (_selected)
//{
//if (!_hovered)
//{
//if (Input.IsActionJustPressed("left_click") && _selected)
//{
//_selected = false;
//EmitSignal(SignalName.Select, false);
//}
//}
//}
//}
//
//private void OnMouseEntered()
//{
//_hovered = true;
//EmitSignal(SignalName.Hover);
//}
//
//private void OnMouseExited()
//{
//_hovered = false;
//EmitSignal(SignalName.Hover, false);
//}
//
//private void OnBodyEntered(Node2D body)
//{
//if (body.GetType() == typeof(Ball))
//{
//EmitSignal(SignalName.BumpMarble, (Ball)body);
//}
//}
//}

View File

@@ -1 +0,0 @@
uid://2rh2m60aldei

View File

@@ -1,13 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://dl1qsemhbxaoh"]
[ext_resource type="Script" uid="uid://cyem70f52xfps" path="res://Gameplay/Pocket.cs" id="1_f316g"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_kcs3t"]
radius = 74.0
height = 264.0
[node name="Pocket" type="Area2D"]
script = ExtResource("1_f316g")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_kcs3t")

View File

@@ -1,70 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://cudhpkje2ax2g"]
[ext_resource type="Texture2D" uid="uid://cgnwfc387vche" path="res://art/rack.png" id="1_re2um"]
[ext_resource type="Script" uid="uid://blwghh5lu3w3r" path="res://Gameplay/Rack.cs" id="2_tsiik"]
[ext_resource type="PackedScene" uid="uid://tmer0me1qpaa" path="res://Gameplay/ball_sprite.tscn" id="3_ydd72"]
[node name="Rack" type="Sprite2D"]
texture = ExtResource("1_re2um")
centered = false
script = ExtResource("2_tsiik")
[node name="R1" type="Node2D" parent="."]
position = Vector2(0, 4)
[node name="C1" parent="R1" instance=ExtResource("3_ydd72")]
position = Vector2(37, 15)
[node name="C2" parent="R1" instance=ExtResource("3_ydd72")]
position = Vector2(73, 15)
[node name="C3" parent="R1" instance=ExtResource("3_ydd72")]
position = Vector2(109, 15)
[node name="C4" parent="R1" instance=ExtResource("3_ydd72")]
position = Vector2(145, 15)
[node name="C5" parent="R1" instance=ExtResource("3_ydd72")]
position = Vector2(181, 15)
[node name="R2" type="Node2D" parent="."]
position = Vector2(0, 4)
[node name="C1" parent="R2" instance=ExtResource("3_ydd72")]
position = Vector2(55, 46)
[node name="C2" parent="R2" instance=ExtResource("3_ydd72")]
position = Vector2(91, 46)
[node name="C3" parent="R2" instance=ExtResource("3_ydd72")]
position = Vector2(127, 46)
[node name="C4" parent="R2" instance=ExtResource("3_ydd72")]
position = Vector2(163, 46)
[node name="R3" type="Node2D" parent="."]
position = Vector2(0, 4)
[node name="C1" parent="R3" instance=ExtResource("3_ydd72")]
position = Vector2(73, 77)
[node name="C2" parent="R3" instance=ExtResource("3_ydd72")]
position = Vector2(109, 77)
[node name="C3" parent="R3" instance=ExtResource("3_ydd72")]
position = Vector2(145, 77)
[node name="R4" type="Node2D" parent="."]
position = Vector2(0, 4)
[node name="C1" parent="R4" instance=ExtResource("3_ydd72")]
position = Vector2(91, 108)
[node name="C2" parent="R4" instance=ExtResource("3_ydd72")]
position = Vector2(127, 108)
[node name="R5" type="Node2D" parent="."]
position = Vector2(0, 4)
[node name="C1" parent="R5" instance=ExtResource("3_ydd72")]
position = Vector2(109, 139)

View File

@@ -1,49 +0,0 @@
[gd_scene load_steps=7 format=3 uid="uid://yr7ufhp84bfa"]
[ext_resource type="Script" path="res://Gameplay/SupportBall.cs" id="2_4wdnc"]
[ext_resource type="Shader" uid="uid://b6vvt5o0008ob" path="res://shaders/globe.gdshader" id="2_jnwku"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_yj7wd"]
bounce = 5.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yj7wd"]
shader = ExtResource("2_jnwku")
shader_parameter/scroll_x = 0.0
shader_parameter/scroll_y = 0.0
shader_parameter/rotation = 0.0
shader_parameter/globe_magnitude = 0.0
[sub_resource type="CircleShape2D" id="CircleShape2D_803qd"]
radius = 18.0
[sub_resource type="CircleShape2D" id="CircleShape2D_4wdnc"]
radius = 18.0
[node name="SupportBall" type="RigidBody2D" groups=["balls"]]
z_index = 1
input_pickable = true
physics_material_override = SubResource("PhysicsMaterial_yj7wd")
continuous_cd = 2
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("2_4wdnc")
[node name="Image" type="Sprite2D" parent="."]
texture_filter = 1
material = SubResource("ShaderMaterial_yj7wd")
[node name="Bounds" type="CollisionShape2D" parent="."]
position = Vector2(0, -7.10543e-15)
shape = SubResource("CircleShape2D_803qd")
[node name="Area2D" type="Area2D" parent="."]
disable_mode = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_4wdnc")
[connection signal="body_entered" from="." to="." method="OnBodyEntered"]
[connection signal="mouse_entered" from="." to="." method="OnMouseEntered"]
[connection signal="mouse_exited" from="." to="." method="OnMouseExited"]
[connection signal="mouse_entered" from="Area2D" to="." method="OnMouseEntered"]
[connection signal="mouse_exited" from="Area2D" to="." method="OnMouseExited"]

View File

@@ -1,84 +0,0 @@
[gd_scene load_steps=6 format=3 uid="uid://dsprg4uahkylm"]
[ext_resource type="Texture2D" uid="uid://brbok0al4e1ab" path="res://art/tableTemplate.png" id="1_s3o1g"]
[ext_resource type="Script" uid="uid://82h0dmyohfj1" path="res://Gameplay/Table.cs" id="1_v5i0k"]
[ext_resource type="PackedScene" uid="uid://dl1qsemhbxaoh" path="res://Gameplay/pocket.tscn" id="3_3wy0c"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_v5i0k"]
bounce = 1.0
absorbent = true
[sub_resource type="RectangleShape2D" id="RectangleShape2D_s3o1g"]
size = Vector2(394, 182)
[node name="Table" type="Sprite2D"]
texture_filter = 1
texture = ExtResource("1_s3o1g")
script = ExtResource("1_v5i0k")
[node name="Cushions" type="Node2D" parent="."]
[node name="TL" type="StaticBody2D" parent="Cushions"]
physics_material_override = SubResource("PhysicsMaterial_v5i0k")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Cushions/TL"]
position = Vector2(-600, -339)
polygon = PackedVector2Array(160, -87, 360, -86, 380, -64, 379, 303, 360, 314, 158, 314)
[node name="TR" type="StaticBody2D" parent="Cushions"]
physics_material_override = SubResource("PhysicsMaterial_v5i0k")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Cushions/TR"]
polygon = PackedVector2Array(220, -404, 240, -427, 449, -427, 448, -26, 241, -26, 220, -36)
[node name="BL" type="StaticBody2D" parent="Cushions"]
physics_material_override = SubResource("PhysicsMaterial_v5i0k")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Cushions/BL"]
polygon = PackedVector2Array(-221, 35, -240, 24, -436, 25, -434, 425, -241, 426, -221, 405)
[node name="BR" type="StaticBody2D" parent="Cushions"]
physics_material_override = SubResource("PhysicsMaterial_v5i0k")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Cushions/BR"]
polygon = PackedVector2Array(219, 36, 239, 24, 447, 24, 448, 426, 240, 426, 219, 403)
[node name="B" type="StaticBody2D" parent="Cushions"]
physics_material_override = SubResource("PhysicsMaterial_v5i0k")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Cushions/B"]
polygon = PackedVector2Array(-186, 440, -206, 459, -207, 644, 206, 655, 205, 460, 186, 440)
[node name="T" type="StaticBody2D" parent="Cushions"]
physics_material_override = SubResource("PhysicsMaterial_v5i0k")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Cushions/T"]
polygon = PackedVector2Array(-186, -441, -206, -459, -206, -630, 205, -631, 205, -459, 186, -440)
[node name="Pockets" type="Node2D" parent="."]
[node name="TL" parent="Pockets" instance=ExtResource("3_3wy0c")]
position = Vector2(-282, -557)
[node name="TR" parent="Pockets" instance=ExtResource("3_3wy0c")]
position = Vector2(281, -559)
[node name="R" parent="Pockets" instance=ExtResource("3_3wy0c")]
position = Vector2(373, -3)
rotation = 1.5708
[node name="BR" parent="Pockets" instance=ExtResource("3_3wy0c")]
position = Vector2(279, 557)
[node name="BL" parent="Pockets" instance=ExtResource("3_3wy0c")]
position = Vector2(-280, 557)
[node name="L" parent="Pockets" instance=ExtResource("3_3wy0c")]
position = Vector2(-373, 4)
rotation = 1.5708
[node name="Kitchen" type="Area2D" parent="."]
position = Vector2(-1, 312)
[node name="CollisionShape2D" type="CollisionShape2D" parent="Kitchen"]
shape = SubResource("RectangleShape2D_s3o1g")

34
Gameplay/tchotchke.tscn Normal file
View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=5 format=3 uid="uid://6gr5saa81qdh"]
[ext_resource type="Script" uid="uid://qmgo5eukvn6y" path="res://Gameplay/Tchotchke.cs" id="1_c08fi"]
[ext_resource type="Texture2D" uid="uid://c1tv50tj5cprl" path="res://art/coffee.png" id="2_gl5mj"]
[sub_resource type="CircleShape2D" id="CircleShape2D_d82wc"]
radius = 31.1448
[sub_resource type="CircleShape2D" id="CircleShape2D_gl5mj"]
radius = 65.0
[node name="Tchotchke" type="StaticBody2D"]
input_pickable = true
script = ExtResource("1_c08fi")
[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.1, 0.1)
texture = ExtResource("2_gl5mj")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_d82wc")
[node name="Area2D" type="Area2D" parent="."]
gravity_space_override = 1
gravity_point = true
gravity_point_center = Vector2(0, 0)
gravity_direction = Vector2(0, 0)
gravity = 50.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_gl5mj")
[connection signal="mouse_entered" from="." to="." method="OnMouseEntered"]
[connection signal="mouse_exited" from="." to="." method="OnMouseExited"]

View File

@@ -1,9 +1,46 @@
[gd_scene load_steps=2 format=3 uid="uid://72tgm5p8d32r"]
[gd_scene load_steps=5 format=3 uid="uid://37hjd4v3p42o"]
[ext_resource type="Script" uid="uid://b4mr2vn8mw6r4" path="res://Gameplay/Worker.cs" id="1_e314i"]
[ext_resource type="Script" uid="uid://bk6qk4rjmsvtn" path="res://Gameplay/Worker.cs" id="1_e314i"]
[node name="Worker" type="Node2D"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_e314i"]
bounce = 3.0
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_e314i"]
load_path = "res://.godot/imported/beyblade.png-cd6ee3474fe554271afbb31b55fadfb5.ctex"
[sub_resource type="CircleShape2D" id="CircleShape2D_e314i"]
radius = 80.0
[node name="Worker" type="RigidBody2D"]
input_pickable = true
physics_material_override = SubResource("PhysicsMaterial_e314i")
gravity_scale = 0.0
inertia = 1.0
lock_rotation = true
continuous_cd = 2
contact_monitor = true
max_contacts_reported = 1
linear_damp = 0.25
script = ExtResource("1_e314i")
[node name="Sprite" type="Sprite2D" parent="."]
visible = false
[node name="Sprite2D" type="Sprite2D" parent="."]
scale = Vector2(0.2, 0.2)
texture = SubResource("CompressedTexture2D_e314i")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
scale = Vector2(0.2, 0.2)
polygon = PackedVector2Array(8, -171, -17, -171, -17, -169.9, -26.2, -169, -29.5, -169, -62, -151.2, -84, -152.9, -84, -154.4, -102.4, -151, -104.7, -151, -150.8, -114, -153, -114, -174, -88, -175.3, -88, -180, -77.7, -180, 44.2, -178, 46.7, -178, 48.3, -163.5, 54.9, -155, 81.2, -155, 83.9, -135.8, 102, -134.9, 102, -114, 126.7, -114, 128.2, -97.5, 137, -96.1, 137, -92, 143.6, -92, 146, -82, 152.9, -82, 154.5, -34, 167.4, -34, 168.7, -18.1, 171, 31.2, 171, 49.4, 167, 52.7, 167, 68, 155, 68, 154.2, 110.5, 134, 112.7, 134, 137.7, 114, 139.7, 114, 142, 98.1, 142, 92.9, 156.9, 79, 158.4, 79, 171.4, 45, 173.1, 45, 172, 22.9, 172, 13.6, 180, 1.10001, 180, -65.5, 159, -106.6, 159, -108.7, 134, -140.7, 134, -142.3, 121.4, -148, 112.5, -148, 101.4, -142, 97.3, -142, 75, -151.3, 75, -152.5, 50.3, -159, 47.5, -159, 39, -164.1, 39, -165.8, 8, -169.8)
[node name="Area2D" type="Area2D" parent="."]
gravity_space_override = 1
gravity_point = true
gravity_point_center = Vector2(0, 0)
gravity_direction = Vector2(0, 0)
gravity = 50.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_e314i")
[connection signal="body_entered" from="." to="." method="OnBodyEntered"]
[connection signal="mouse_entered" from="." to="." method="OnMouseEntered"]
[connection signal="mouse_exited" from="." to="." method="OnMouseExited"]

0
Tchotchke.cs Normal file
View File

1
Tchotchke.cs.uid Normal file
View File

@@ -0,0 +1 @@
uid://c1bvlokuaveb2

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://clqme77dmqd23"
path="res://.godot/imported/CogIcon.png-74cfd6548c51e7dcd49b0734bba428ea.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/CogIcon.png"
dest_files=["res://.godot/imported/CogIcon.png-74cfd6548c51e7dcd49b0734bba428ea.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

View File

@@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://ctf7osjgudmv3"
path="res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr"
[deps]
source_file="res://art/House In a Forest Loop.ogg"
dest_files=["res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

BIN
art/arena.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://df2xulwx34fi"
path="res://.godot/imported/table.png-2f7ddccae7f21a9c21b1a69f78f7d278.ctex"
uid="uid://nxo2tpgmobli"
path="res://.godot/imported/arena.png-d8e83965b3637c723ffc2bf889822dbe.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/table.png"
dest_files=["res://.godot/imported/table.png-2f7ddccae7f21a9c21b1a69f78f7d278.ctex"]
source_file="res://art/arena.png"
dest_files=["res://.godot/imported/arena.png-d8e83965b3637c723ffc2bf889822dbe.ctex"]
[params]

BIN
art/arenaBounds.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://g357217lef4q"
path="res://.godot/imported/ball_11.png-196eb35ce40fbb2053c66ca1294ad059.ctex"
uid="uid://bt5xf5evtlpad"
path="res://.godot/imported/arenaBounds.png-09659382dd1978da5024d88f2bc1f256.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_11.png"
dest_files=["res://.godot/imported/ball_11.png-196eb35ce40fbb2053c66ca1294ad059.ctex"]
source_file="res://art/arenaBounds.png"
dest_files=["res://.godot/imported/arenaBounds.png-09659382dd1978da5024d88f2bc1f256.ctex"]
[params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnoqkj2msjdbe"
path="res://.godot/imported/ball_12.png-ee95853e656d2e219ff7982e8f31245b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_12.png"
dest_files=["res://.godot/imported/ball_12.png-ee95853e656d2e219ff7982e8f31245b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://da3nlvk4dbr7k"
path="res://.godot/imported/ball_13.png-d0401eba85428b715e4b7978038050a7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_13.png"
dest_files=["res://.godot/imported/ball_13.png-d0401eba85428b715e4b7978038050a7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dtt144b4hcq1t"
path="res://.godot/imported/ball_14.png-3e724d693d3d782a30a6adc93f2e4b2c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_14.png"
dest_files=["res://.godot/imported/ball_14.png-3e724d693d3d782a30a6adc93f2e4b2c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://3k6u32wysmak"
path="res://.godot/imported/ball_15.png-8cdb4b3900fffa6d5105e2cff3d59cc0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_15.png"
dest_files=["res://.godot/imported/ball_15.png-8cdb4b3900fffa6d5105e2cff3d59cc0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c6082glgxonen"
path="res://.godot/imported/ball_2.png-5bfcc9971a4473ef19d9aabae57fb14f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_2.png"
dest_files=["res://.godot/imported/ball_2.png-5bfcc9971a4473ef19d9aabae57fb14f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dm08od2rm4t6a"
path="res://.godot/imported/ball_3.png-1f1717ef70ccfa38748c55c3f37bf4f7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_3.png"
dest_files=["res://.godot/imported/ball_3.png-1f1717ef70ccfa38748c55c3f37bf4f7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1xed824duq5b"
path="res://.godot/imported/ball_4.png-b0b95aa2000006a1df4e046cb728e7d0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_4.png"
dest_files=["res://.godot/imported/ball_4.png-b0b95aa2000006a1df4e046cb728e7d0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cnpkopyuvddgs"
path="res://.godot/imported/ball_5.png-a1e18fd4e8acc177e7dd8288726a71c0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_5.png"
dest_files=["res://.godot/imported/ball_5.png-a1e18fd4e8acc177e7dd8288726a71c0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d0w8ji224tqo2"
path="res://.godot/imported/ball_6.png-8d292140d73da9ac261c7faa0383e9d6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_6.png"
dest_files=["res://.godot/imported/ball_6.png-8d292140d73da9ac261c7faa0383e9d6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b8lfcpntlj5sv"
path="res://.godot/imported/ball_7.png-0fceb32a90a934eda906dd7cb8e82b2d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_7.png"
dest_files=["res://.godot/imported/ball_7.png-0fceb32a90a934eda906dd7cb8e82b2d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b6pal6tj8p06x"
path="res://.godot/imported/ball_8.png-29925aa4b6d7d0aa4d07d880dce61a9b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_8.png"
dest_files=["res://.godot/imported/ball_8.png-29925aa4b6d7d0aa4d07d880dce61a9b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://eenlj817x36o"
path="res://.godot/imported/ball_9.png-08b4dc6ca8b6b459c88fba956d99b26b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_9.png"
dest_files=["res://.godot/imported/ball_9.png-08b4dc6ca8b6b459c88fba956d99b26b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
art/beyblade.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://ncsnpi2f14mm"
path="res://.godot/imported/ball_10.png-3fb92f7bdcad3e233d08cf998caa8eb5.ctex"
uid="uid://db5nj5mxu1ldc"
path="res://.godot/imported/beyblade.png-cd6ee3474fe554271afbb31b55fadfb5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_10.png"
dest_files=["res://.godot/imported/ball_10.png-3fb92f7bdcad3e233d08cf998caa8eb5.ctex"]
source_file="res://art/beyblade.png"
dest_files=["res://.godot/imported/beyblade.png-cd6ee3474fe554271afbb31b55fadfb5.ctex"]
[params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cjqa565njih7d"
path="res://.godot/imported/billiardball.png-eeae925c3c8f24d7b41954cfa69037f0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/billiardball.png"
dest_files=["res://.godot/imported/billiardball.png-eeae925c3c8f24d7b41954cfa69037f0.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dd3s6x86dgxem"
path="res://.godot/imported/checkerboard.png-0a62bdcb70613a5b49cd84d25b5abd77.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/checkerboard.png"
dest_files=["res://.godot/imported/checkerboard.png-0a62bdcb70613a5b49cd84d25b5abd77.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
art/coffee.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 KiB

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://eq2g2mx115sh"
path="res://.godot/imported/ball_1.png-fdecb2f6384d93c345e2aedfd6fd7c24.ctex"
uid="uid://c1tv50tj5cprl"
path="res://.godot/imported/coffee.png-f3deb5980009f6ec9311509f35b8a86a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ball_1.png"
dest_files=["res://.godot/imported/ball_1.png-fdecb2f6384d93c345e2aedfd6fd7c24.ctex"]
source_file="res://art/coffee.png"
dest_files=["res://.godot/imported/coffee.png-f3deb5980009f6ec9311509f35b8a86a.ctex"]
[params]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ck4ta2f0ofjs0"
path="res://.godot/imported/cue_ball.png-82c061f2725a34218f16d54383e22ce9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/cue_ball.png"
dest_files=["res://.godot/imported/cue_ball.png-82c061f2725a34218f16d54383e22ce9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://20l58n0ih2w8"
path="res://.godot/imported/enemyFlyingAlt_1.png-559f599b16c69b112c1b53f6332e9489.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/enemyFlyingAlt_1.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_1.png-559f599b16c69b112c1b53f6332e9489.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://j3he7mqxqv3u"
path="res://.godot/imported/enemyFlyingAlt_2.png-31dc7310eda6e1b721224f3cd932c076.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/enemyFlyingAlt_2.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_2.png-31dc7310eda6e1b721224f3cd932c076.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Some files were not shown because too many files have changed in this diff Show More