first commit

This commit is contained in:
2026-01-19 17:44:00 -05:00
commit e2b7d6616a
67 changed files with 1608 additions and 0 deletions

40
Gameplay/Actor.cs Normal file
View File

@@ -0,0 +1,40 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
public partial class Actor : Sprite2D
{
public Sprite2D _markNormal, _markPressed, _markHovered, _markDisabled, _markFocused;
public Goal _goal;
public Board _board;
public override void _Ready()
{
_markNormal = GetNode<Sprite2D>("MarkNormal");
_markPressed = GetNode<Sprite2D>("MarkPressed");
_markHovered = GetNode<Sprite2D>("MarkHovered");
_markDisabled = GetNode<Sprite2D>("MarkDisabled");
_markFocused = GetNode<Sprite2D>("MarkFocused");
}
// public List<List<int>> CheckGoals()
// {
// List<Cell> ownedCells = _board._cells.Where<Cell>(c=>c._marker == this).ToList();
// List<int> ownedCellAddresses = ownedCells.Select(c=>c._address).ToList();
// string ownedCellAddressesString = string.Join("",ownedCellAddresses);
// List<List<int>> goalsMet = new();
// for (int i = 0; i < _goal._eligibleGoals.Count; i++)
// {
// Goal.GoalName goalName = _goal._eligibleGoals[i];
// List<int> goal = _goal._conditions[goalName];
// if (goal.All(n=>ownedCellAddresses.Contains(n)))
// {
// goalsMet.Add(goal);
// }
// }
// return goalsMet;
// }
}

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

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

112
Gameplay/Board.cs Normal file
View File

@@ -0,0 +1,112 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.Serialization;
public partial class Board : Sprite2D
{
public bool _active = false, _moveMade = false, _won = false;
public List<Cell> _cells = new();
public Enemy _owner;
public Actor _winner = null;
public GoalName _winningPattern;
public override void _Ready()
{
_cells = GetChildren().Where(c=>c is Cell).Cast<Cell>().ToList();
for (int i = 0; i < _cells.Count; i++)
{
_cells[i]._address = i+1;
}
}
public override void _Process(double DELTA_)
{
}
public void Activate()
{
Disable(false);
}
public Actor CheckForWinner()
{
// List<List<int>> playerGoalsMet = _owner._playerOpponent.CheckGoals();
// List<List<int>> ownerGoalsMet = _owner.CheckGoals();
// _winner = playerGoalsMet.Count>0 ? _owner._playerOpponent : ownerGoalsMet.Count>0 ? _owner : null;
// _won = _winner != null;
return _winner;
}
public void ClaimOwnership(Enemy OWNER)
{
_owner = OWNER;
_cells.ForEach(c=>c._owner = OWNER);
_cells.ForEach(c=>c._board = this);
}
public void ClearBoard(){
foreach (Cell cell in _cells)
{
cell.Clear();
}
}
public void Deactivate()
{
Disable(true);
}
public Cell GetCellByTenant(Enemy TENANT)
{
return _cells.Single(c=>c._tenant == TENANT);
}
public Cell GetCellByAddress(int ADDRESS)
{
return _cells.Single(c=>c._address == ADDRESS);
}
public List<Cell> GetCellsByOwner(Player PLAYER)
{
return _cells.Where(c=>c._marker == PLAYER).ToList();
}
//THIS SHOULD BE MOVED INTO ACTION LOGIC
// public void RotateBoard(int DEGREES, int REPEAT)
// {
// for (int i = 0; i < REPEAT; i++)
// {
// Rotation += DEGREES * ((float)Math.PI / 180);
// RenumberCells();
// }
// }
public void RenumberCells()
{
_cells.OrderBy(c => c.Position.X).ThenBy(c => c.Position.Y).ToList();
for (int i = 0; i < _cells.Count; i++)
{
Cell cell = _cells[i];
cell._address = i;
}
}
public void Start()
{
ClearBoard();
// _player._isTurn = true;
}
public void Disable(bool DISABLED)
{
_active = !DISABLED;
Visible = !DISABLED;
SetProcess(!DISABLED);
_cells.ForEach(c=>c.Disable(DISABLED));
}
}

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

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

34
Gameplay/Boss.cs Normal file
View File

@@ -0,0 +1,34 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Boss : Enemy
{
public List<Dragon> _dragons;
public override void _Ready()
{
base._Ready();
_number = 1;
_dragons = GetChildren().Where(c=>c is Dragon).Cast<Dragon>().ToList();
for (int i = 0; i < _dragons.Count; i++)
{
_dragons[i]._owner = this;
_dragons[i]._number = _board._cells[i]._address;
_board._cells[i]._tenant = _dragons[i];
}
}
public override void PassPlayer(Player PLAYER)
{
base.PassPlayer(PLAYER);
_dragons.ForEach(d=>d.PassPlayer(PLAYER));
}
public override void ClickCell(Cell CLICKEDCELL)
{
_playerOpponent.Challenge(CLICKEDCELL._tenant);
}
}

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

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

47
Gameplay/BusinessCard.cs Normal file
View File

@@ -0,0 +1,47 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class BusinessCard : TextureButton
{
public Player _player;
public Goal _goal;
public GoalName _goalName;
public bool _goalMet = false;
public override void _Ready()
{
base._Ready();
_goal = GetNode<Goal>("Goal");
}
public override void _Pressed()
{
base._Pressed();
GD.Print("Pressed");
_player._activeEnemy.Defeat(_goalName);
_player.Challenge(_player._activeEnemy._owner._board._owner);
}
public void AssignGoal(GoalName GOALNAME)
{
_goalName = GOALNAME;
}
public void CheckGoal()
{
List<Cell> ownedCells = _player._board.GetCellsByOwner(_player);
List<int> addresses = _goal.GetAddresses(_goalName);
_goalMet = addresses.All(a=>ownedCells.Select(c=>c._address).ToList().IndexOf(a)>-1);
GD.Print(_goalMet);
Disabled = !_goalMet;
GD.Print(Disabled);
}
public void PassPlayer(Player PLAYER)
{
_player = PLAYER;
}
}

View File

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

53
Gameplay/Cell.cs Normal file
View File

@@ -0,0 +1,53 @@
using Godot;
using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;
public partial class Cell : TextureButton
{
public bool _isHovered = false, _isPressed = false, _isDisabled = false, _isFocused = false, _locked = false, _destroyed = false;
public int _address;
public Enemy _owner, _tenant;
public Actor _marker;
public Sprite2D _defaultMark;
public Board _board;
public override void _Ready()
{
_defaultMark = GetNode<Sprite2D>("DefaultMark");
}
public override void _Pressed()
{
base._Pressed();
// GD.Print(_tenant.GetType().ToString() + " " + _tenant._number + " Pressed");
// GD.Print(_board._owner.GetType().ToString() + " " + _board._owner._number + " Pressed");
_owner.ClickCell(this);
}
public override void _Process(double DELTA)
{
base._Process(DELTA);
}
public void Disable(bool DISABLED)
{
SetProcess(!DISABLED);
}
public void Mark(Actor MARKER)
{
_marker = MARKER;
TextureNormal = MARKER._markNormal.Texture;
TexturePressed = MARKER._markPressed.Texture;
TextureHover = MARKER._markHovered.Texture;
TextureDisabled = MARKER._markDisabled.Texture;
TextureFocused = MARKER._markFocused.Texture;
}
public void Clear()
{
_marker = null;
TextureNormal = TexturePressed = TextureHover = TextureDisabled = TextureFocused = _defaultMark.Texture;
}
}

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

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

23
Gameplay/Contact.cs Normal file
View File

@@ -0,0 +1,23 @@
using Godot;
using System;
public partial class Contact : Sprite2D
{
public Player _player;
public int _number;
public override void _Ready()
{
}
public void PassNumber(int NUMBER)
{
_number = NUMBER;
}
public void PassPlayer(Player PLAYER)
{
_player = PLAYER;
}
}

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

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

42
Gameplay/Dragon.cs Normal file
View File

@@ -0,0 +1,42 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Dragon : Enemy
{
// public int _number;
// public Board _board;
public List<Mook> _mooks;
// public Player _playerOpponent;
// public Cell _cell;
public override void _Ready()
{
base._Ready();
_mooks = GetChildren().Where(c=>c is Mook).Cast<Mook>().ToList();
for (int i = 0; i < _mooks.Count; i++)
{
_mooks[i]._owner = this;
_mooks[i]._number = _board._cells[i]._address;
_board._cells[i]._tenant = _mooks[i];
}
}
public void Challenge()
{
_playerOpponent.Challenge(this);
}
public override void PassPlayer(Player PLAYER)
{
base.PassPlayer(PLAYER);
_mooks.ForEach(m=>m.PassPlayer(PLAYER));
}
public override void ClickCell(Cell CLICKEDCELL)
{
_playerOpponent.Challenge(CLICKEDCELL._tenant);
}
}

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

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

40
Gameplay/Enemy.cs Normal file
View File

@@ -0,0 +1,40 @@
using Godot;
using System;
public partial class Enemy : Actor
{
public int _number;
public Player _playerOpponent;
public Cell _cell;
public Enemy _owner;
public override void _Ready()
{
base._Ready();
_board = GetNode<Board>("Board");
_board.ClaimOwnership(this);
_board.Disable(true);
}
public virtual void PassPlayer(Player PLAYER)
{
_playerOpponent = PLAYER;
}
public virtual void ClickCell(Cell CLICKEDCELL)
{
}
public void Defeat(GoalName WINNINGPATTERN)
{
_board._winningPattern = WINNINGPATTERN;
_owner._board.GetCellByTenant(this).Mark(_playerOpponent);
}
public void Victory(GoalName WINNINGPATTERN)
{
_board._winningPattern = WINNINGPATTERN;
_owner._board.GetCellByTenant(this).Mark(this);
}
}

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

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

71
Gameplay/Goal.cs Normal file
View File

@@ -0,0 +1,71 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public partial class Goal : Node
{
public Dictionary<GoalName, List<int>> _conditions = new()
{
{GoalName.TopRow, new (){1,2,3}},
{GoalName.MiddleRow, new (){4,5,6}},
{GoalName.BottomRow, new (){7,8,9}},
{GoalName.LeftColumn, new (){1,4,7}},
{GoalName.MiddleColumn, new (){2,5,8}},
{GoalName.RightColumn, new (){3,6,9}},
{GoalName.ForwardDiagonal, new (){3,5,7}},
{GoalName.BackwardDiagonal, new (){1,5,9}},
{GoalName.Number1, new (){1,2,5,7,8,9}},
{GoalName.Number2, new (){1,2,4,5,8,9}},
{GoalName.Number3, new (){1,2,5,6,7,8}},
{GoalName.Number4, new (){1,3,4,5,6,9}},
{GoalName.Number5, new (){2,3,4,5,7,8}},
{GoalName.Number6, new (){1,4,5,6,7,8,9}},
{GoalName.Number7, new (){1,2,3,6,9}},
{GoalName.Number8, new (){2,3,4,5,6,7,8}},
{GoalName.Number9, new (){1,2,3,4,5,6,8,9}},
{GoalName.Number0, new (){2,3,4,6,7,8}},
{GoalName.LetterA, new (){2,4,5,6,7,9}},
{GoalName.LetterB, new (){1,2,4,5,6,7,8,9}},
{GoalName.LetterC, new (){1,2,3,4,7,8,9}},
{GoalName.LetterD, new (){1,2,4,6,7,8}},
{GoalName.LetterE, new (){1,2,3,4,5,7,8,9}},
{GoalName.LetterF, new (){1,2,3,4,5,7}},
{GoalName.LetterG, new (){1,2,4,6,7,8,9}},
{GoalName.LetterH, new (){1,3,4,5,6,7,9}},
{GoalName.LetterI, new (){1,2,3,5,7,8,9}},
{GoalName.LetterJ, new (){1,2,3,5,7,8}},
{GoalName.LetterK, new (){1,3,4,5,7,9}},
{GoalName.LetterL, new (){3,5,7,8,9}},
{GoalName.LetterM, new (){1,2,3,4,5,6,7,9}},
{GoalName.LetterN, new (){1,2,3,4,6,7,9}},
{GoalName.LetterO, new (){1,2,3,4,6,7,8,9}},
{GoalName.LetterP, new (){1,2,3,4,5,6,7}},
{GoalName.LetterQ, new (){1,2,3,4,6,7,8}},
{GoalName.LetterR, new (){1,2,3,4,5,7,9}},
{GoalName.LetterS, new (){2,3,5,7,8}},
{GoalName.LetterT, new (){1,2,3,5,8}},
{GoalName.LetterU, new (){1,3,4,6,7,8,9}},
{GoalName.LetterV, new (){1,3,4,6,8}},
{GoalName.LetterW, new (){1,3,4,5,6,7,8,9}},
{GoalName.LetterX, new (){1,3,5,7,9}},
{GoalName.LetterY, new (){1,3,5,8}},
{GoalName.LetterZ, new (){1,2,5,8,9}},
{GoalName.LongRightAngleAt1, new (){1,2,3,4,7}},
{GoalName.LongRightAngleAt3, new (){1,2,3,6,9}},
{GoalName.LongRightAngleAt7, new (){1,4,7,8,9}},
{GoalName.LongRightAngleAt9, new (){3,6,7,8,9}},
{GoalName.ShortRightAngleAt1, new (){1,2,4}},
{GoalName.ShortRightAngleAt3, new (){2,3,6}},
{GoalName.ShortRightAngleAt7, new (){4,7,8}},
{GoalName.ShortRightAngleAt9, new (){6,8,9}},
{GoalName.Corners, new (){1,4,7,9}},
{GoalName.Diamond, new (){2,4,6,8}},
};
public List<int> GetAddresses(GoalName NAME)
{
return _conditions[NAME];
}
}

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

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

58
Gameplay/GoalName.cs Normal file
View File

@@ -0,0 +1,58 @@
public enum GoalName
{
TopRow,
MiddleRow,
BottomRow,
LeftColumn,
MiddleColumn,
RightColumn,
ForwardDiagonal,
BackwardDiagonal,
Number1,
Number2,
Number3,
Number4,
Number5,
Number6,
Number7,
Number8,
Number9,
Number0,
LetterA,
LetterB,
LetterC,
LetterD,
LetterE,
LetterF,
LetterG,
LetterH,
LetterI,
LetterJ,
LetterK,
LetterL,
LetterM,
LetterN,
LetterO,
LetterP,
LetterQ,
LetterR,
LetterS,
LetterT,
LetterU,
LetterV,
LetterW,
LetterX,
LetterY,
LetterZ,
LongRightAngleAt1,
LongRightAngleAt3,
LongRightAngleAt7,
LongRightAngleAt9,
ShortRightAngleAt1,
ShortRightAngleAt3,
ShortRightAngleAt7,
ShortRightAngleAt9,
Corners,
Diamond,
Plus
}

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

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

20
Gameplay/Mook.cs Normal file
View File

@@ -0,0 +1,20 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Mook : Enemy
{
public override void _Ready()
{
base._Ready();
}
public override void ClickCell(Cell CLICKEDCELL)
{
CLICKEDCELL.Mark(_playerOpponent);
_playerOpponent.CheckBusinessCards();
}
}

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

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

13
Gameplay/Opponent.cs Normal file
View File

@@ -0,0 +1,13 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Opponent : Player
{
public void MakeMove()
{
// CREATE CODE TO MAKE ENEMY MOVES
}
}

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

@@ -0,0 +1 @@
uid://631085nn2jpc

37
Gameplay/Phone.cs Normal file
View File

@@ -0,0 +1,37 @@
using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Phone : Sprite2D
{
public PhoneButton _hoveredButton;
public List<PhoneButton> _phoneButtons = new();
public Player _player;
public override void _Ready()
{
_phoneButtons = GetChildren().Where(c=>c is PhoneButton).Cast<PhoneButton>().ToList();
for (int i = 0; i < _phoneButtons.Count; i++)
{
_phoneButtons[i]._phone = this;
}
}
public override void _Process(double DELTA_)
{
// _hoveredButton = _phoneButtons.FirstOrDefault(c => c._isHovered, null);
}
public void PassPlayer(Player PLAYER)
{
_player = PLAYER;
for (int i = 0; i < _phoneButtons.Count; i++)
{
_phoneButtons[i]._phone = this;
_phoneButtons[i]._contact.PassPlayer(PLAYER);
_phoneButtons[i]._contact.PassNumber((i+1)%10);
}
}
}

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

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

30
Gameplay/PhoneButton.cs Normal file
View File

@@ -0,0 +1,30 @@
using Godot;
using System;
public partial class PhoneButton : TextureButton
{
// [Signal]
// public delegate void HoverEventHandler(Cell THISCELL, bool ISHOVERED);
public bool _isHovered = false;
public Phone _phone;
public Contact _contact;
public override void _Ready()
{
base._Ready();
_contact = GetNode<Contact>("Contact");
}
// private void OnMouseEntered()
// {
// _isHovered = true;
// EmitSignal(SignalName.Hover, this, _isHovered);
// }
// private void OnMouseExited()
// {
// _isHovered = false;
// EmitSignal(SignalName.Hover, this, _isHovered);
// }
}

View File

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

27
Gameplay/actor.tscn Normal file
View File

@@ -0,0 +1,27 @@
[gd_scene load_steps=3 format=3 uid="uid://cxgydksjaasxt"]
[ext_resource type="Script" uid="uid://bfmn75cttwhto" path="res://Gameplay/Actor.cs" id="1_2b8tl"]
[ext_resource type="Texture2D" uid="uid://c51oi06i4yrvv" path="res://Art/x.png" id="2_6kc7q"]
[node name="Actor" type="Sprite2D"]
script = ExtResource("1_2b8tl")
[node name="MarkNormal" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("2_6kc7q")
[node name="MarkPressed" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("2_6kc7q")
[node name="MarkHovered" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("2_6kc7q")
[node name="MarkDisabled" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("2_6kc7q")
[node name="MarkFocused" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("2_6kc7q")

63
Gameplay/board.tscn Normal file
View File

@@ -0,0 +1,63 @@
[gd_scene load_steps=4 format=3 uid="uid://jkmo1fb2ohv4"]
[ext_resource type="Texture2D" uid="uid://cbi83mc26qju5" path="res://Art/Tic-tac-toe.png" id="1_iqk8r"]
[ext_resource type="Script" uid="uid://decakbqo4jfdi" path="res://Gameplay/Board.cs" id="2_ucn0m"]
[ext_resource type="PackedScene" uid="uid://0vj01cjcpibt" path="res://Gameplay/cell.tscn" id="3_s74v7"]
[node name="Board" type="Sprite2D"]
texture = ExtResource("1_iqk8r")
script = ExtResource("2_ucn0m")
[node name="Cell1" parent="." instance=ExtResource("3_s74v7")]
offset_left = -300.0
offset_top = -301.0
offset_right = -100.0
offset_bottom = -101.0
[node name="Cell2" parent="." instance=ExtResource("3_s74v7")]
offset_left = -100.0
offset_top = -300.0
offset_right = 100.0
offset_bottom = -100.0
[node name="Cell3" parent="." instance=ExtResource("3_s74v7")]
offset_left = 100.0
offset_top = -300.0
offset_right = 300.0
offset_bottom = -100.0
[node name="Cell4" parent="." instance=ExtResource("3_s74v7")]
offset_left = -300.0
offset_top = -100.0
offset_right = -100.0
offset_bottom = 100.0
[node name="Cell5" parent="." instance=ExtResource("3_s74v7")]
offset_left = -100.0
offset_top = -100.0
offset_right = 100.0
offset_bottom = 100.0
[node name="Cell6" parent="." instance=ExtResource("3_s74v7")]
offset_left = 100.0
offset_top = -100.0
offset_right = 300.0
offset_bottom = 100.0
[node name="Cell7" parent="." instance=ExtResource("3_s74v7")]
offset_left = -300.0
offset_top = 100.0
offset_right = -100.0
offset_bottom = 300.0
[node name="Cell8" parent="." instance=ExtResource("3_s74v7")]
offset_left = -100.0
offset_top = 100.0
offset_right = 100.0
offset_bottom = 300.0
[node name="Cell9" parent="." instance=ExtResource("3_s74v7")]
offset_left = 100.0
offset_top = 100.0
offset_right = 300.0
offset_bottom = 300.0

49
Gameplay/boss.tscn Normal file
View File

@@ -0,0 +1,49 @@
[gd_scene load_steps=5 format=3 uid="uid://bmy783a4c0tal"]
[ext_resource type="Script" uid="uid://d3e55f3sbmjfm" path="res://Gameplay/Boss.cs" id="1_2o0wi"]
[ext_resource type="PackedScene" uid="uid://jkmo1fb2ohv4" path="res://Gameplay/board.tscn" id="1_clmtu"]
[ext_resource type="PackedScene" uid="uid://cvys1ievove7k" path="res://Gameplay/dragon.tscn" id="2_2o0wi"]
[ext_resource type="Texture2D" uid="uid://c51oi06i4yrvv" path="res://Art/x.png" id="4_r1ck7"]
[node name="Boss" type="Sprite2D"]
script = ExtResource("1_2o0wi")
[node name="Board" parent="." instance=ExtResource("1_clmtu")]
[node name="Dragon1" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon2" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon3" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon4" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon5" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon6" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon7" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon8" parent="." instance=ExtResource("2_2o0wi")]
[node name="Dragon9" parent="." instance=ExtResource("2_2o0wi")]
[node name="MarkNormal" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_r1ck7")
[node name="MarkPressed" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_r1ck7")
[node name="MarkHovered" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_r1ck7")
[node name="MarkDisabled" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_r1ck7")
[node name="MarkFocused" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_r1ck7")

View File

@@ -0,0 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://b0ks34m6smjfd"]
[ext_resource type="Texture2D" uid="uid://g6ikqlh8yccy" path="res://Art/blanksquare.jpg" id="1_8xr8s"]
[ext_resource type="Script" uid="uid://dtcalmvwievft" path="res://Gameplay/BusinessCard.cs" id="2_rhxm0"]
[ext_resource type="PackedScene" uid="uid://tk7fjdvu5c0u" path="res://Gameplay/goal.tscn" id="3_ejro6"]
[node name="BusinessCard" type="TextureButton"]
modulate = Color(1, 1, 1, 0.2)
disabled = true
texture_normal = ExtResource("1_8xr8s")
texture_pressed = ExtResource("1_8xr8s")
texture_hover = ExtResource("1_8xr8s")
texture_disabled = ExtResource("1_8xr8s")
texture_focused = ExtResource("1_8xr8s")
script = ExtResource("2_rhxm0")
[node name="Goal" parent="." instance=ExtResource("3_ejro6")]

17
Gameplay/cell.tscn Normal file
View File

@@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://0vj01cjcpibt"]
[ext_resource type="Script" uid="uid://pg7mpir3ewhw" path="res://Gameplay/Cell.cs" id="1_lehgd"]
[ext_resource type="Texture2D" uid="uid://g6ikqlh8yccy" path="res://Art/blanksquare.jpg" id="2_mxyjk"]
[node name="Cell" type="TextureButton"]
modulate = Color(1, 1, 1, 0.2)
offset_right = 200.0
offset_bottom = 200.0
texture_normal = ExtResource("2_mxyjk")
texture_pressed = ExtResource("2_mxyjk")
texture_hover = ExtResource("2_mxyjk")
texture_disabled = ExtResource("2_mxyjk")
texture_focused = ExtResource("2_mxyjk")
script = ExtResource("1_lehgd")
[node name="DefaultMark" type="Sprite2D" parent="."]

6
Gameplay/contact.tscn Normal file
View File

@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://if21pf73w7by"]
[ext_resource type="Script" uid="uid://bgj2cuqdq0b6l" path="res://Gameplay/Contact.cs" id="1_basqx"]
[node name="Contact" type="Sprite2D"]
script = ExtResource("1_basqx")

50
Gameplay/dragon.tscn Normal file
View File

@@ -0,0 +1,50 @@
[gd_scene load_steps=5 format=3 uid="uid://cvys1ievove7k"]
[ext_resource type="PackedScene" uid="uid://jkmo1fb2ohv4" path="res://Gameplay/board.tscn" id="1_3o6ty"]
[ext_resource type="Script" uid="uid://ctsffebttempt" path="res://Gameplay/Dragon.cs" id="1_rebub"]
[ext_resource type="PackedScene" uid="uid://bti3pxehphc5m" path="res://Gameplay/mook.tscn" id="2_70jbw"]
[ext_resource type="Texture2D" uid="uid://c51oi06i4yrvv" path="res://Art/x.png" id="4_1okyd"]
[node name="Dragon" type="Sprite2D"]
script = ExtResource("1_rebub")
[node name="Board" parent="." instance=ExtResource("1_3o6ty")]
visible = false
[node name="Mook1" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook2" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook3" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook4" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook5" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook6" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook7" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook8" parent="." instance=ExtResource("2_70jbw")]
[node name="Mook9" parent="." instance=ExtResource("2_70jbw")]
[node name="MarkNormal" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_1okyd")
[node name="MarkPressed" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_1okyd")
[node name="MarkHovered" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_1okyd")
[node name="MarkDisabled" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_1okyd")
[node name="MarkFocused" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("4_1okyd")

30
Gameplay/enemy.tscn Normal file
View File

@@ -0,0 +1,30 @@
[gd_scene load_steps=4 format=3 uid="uid://bsfchgfdky43e"]
[ext_resource type="Script" uid="uid://ctxj1kcqu8v78" path="res://Gameplay/Enemy.cs" id="1_4gyqm"]
[ext_resource type="PackedScene" uid="uid://jkmo1fb2ohv4" path="res://Gameplay/board.tscn" id="1_7k104"]
[ext_resource type="Texture2D" uid="uid://c51oi06i4yrvv" path="res://Art/x.png" id="3_rgfr3"]
[node name="Enemy" type="Sprite2D"]
script = ExtResource("1_4gyqm")
[node name="Board" parent="." instance=ExtResource("1_7k104")]
[node name="MarkNormal" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_rgfr3")
[node name="MarkPressed" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_rgfr3")
[node name="MarkHovered" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_rgfr3")
[node name="MarkDisabled" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_rgfr3")
[node name="MarkFocused" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_rgfr3")

6
Gameplay/goal.tscn Normal file
View File

@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://tk7fjdvu5c0u"]
[ext_resource type="Script" uid="uid://c08tnhx0minta" path="res://Gameplay/Goal.cs" id="1_cmwnn"]
[node name="Goal" type="Node"]
script = ExtResource("1_cmwnn")

31
Gameplay/mook.tscn Normal file
View File

@@ -0,0 +1,31 @@
[gd_scene load_steps=4 format=3 uid="uid://bti3pxehphc5m"]
[ext_resource type="PackedScene" uid="uid://jkmo1fb2ohv4" path="res://Gameplay/board.tscn" id="1_ndne4"]
[ext_resource type="Script" uid="uid://clatml6wkypfe" path="res://Gameplay/Mook.cs" id="1_ujoso"]
[ext_resource type="Texture2D" uid="uid://c51oi06i4yrvv" path="res://Art/x.png" id="3_2cl80"]
[node name="Mook" type="Sprite2D"]
script = ExtResource("1_ujoso")
[node name="Board" parent="." instance=ExtResource("1_ndne4")]
visible = false
[node name="MarkNormal" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_2cl80")
[node name="MarkPressed" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_2cl80")
[node name="MarkHovered" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_2cl80")
[node name="MarkDisabled" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_2cl80")
[node name="MarkFocused" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("3_2cl80")

13
Gameplay/opponent.tscn Normal file
View File

@@ -0,0 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://12dh7l7eucb4"]
[ext_resource type="Script" uid="uid://631085nn2jpc" path="res://Gameplay/Opponent.cs" id="1_h046w"]
[ext_resource type="Texture2D" uid="uid://c51oi06i4yrvv" path="res://Art/x.png" id="2_7tesw"]
[node name="Opponent" type="Node2D"]
script = ExtResource("1_h046w")
[node name="Mark" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("2_7tesw")
[node name="Sprite" type="Sprite2D" parent="."]

79
Gameplay/phone.tscn Normal file
View File

@@ -0,0 +1,79 @@
[gd_scene load_steps=4 format=3 uid="uid://yaybgshgeb3d"]
[ext_resource type="Texture2D" uid="uid://buee5y051op2" path="res://Art/phone.png" id="1_lrxfg"]
[ext_resource type="PackedScene" uid="uid://dj6cr426bn30b" path="res://Gameplay/phone_button.tscn" id="2_pr3bu"]
[ext_resource type="Script" uid="uid://dgmkhlit1vnf3" path="res://Gameplay/Phone.cs" id="2_ujt17"]
[node name="Phone" type="Sprite2D"]
texture = ExtResource("1_lrxfg")
script = ExtResource("2_ujt17")
[node name="PhoneButton1" parent="." instance=ExtResource("2_pr3bu")]
offset_left = -228.0
offset_top = 230.0
offset_right = 572.0
offset_bottom = 1030.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton2" parent="." instance=ExtResource("2_pr3bu")]
offset_left = -41.0
offset_top = 254.0
offset_right = 759.0
offset_bottom = 1054.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton3" parent="." instance=ExtResource("2_pr3bu")]
offset_left = 150.0
offset_top = 225.0
offset_right = 950.0
offset_bottom = 1025.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton4" parent="." instance=ExtResource("2_pr3bu")]
offset_left = -228.0
offset_top = 339.0
offset_right = 572.0
offset_bottom = 1139.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton5" parent="." instance=ExtResource("2_pr3bu")]
offset_left = -38.0
offset_top = 361.0
offset_right = 762.0
offset_bottom = 1161.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton6" parent="." instance=ExtResource("2_pr3bu")]
offset_left = 140.0
offset_top = 336.0
offset_right = 940.0
offset_bottom = 1136.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton7" parent="." instance=ExtResource("2_pr3bu")]
offset_left = -222.0
offset_top = 447.0
offset_right = 578.0
offset_bottom = 1247.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton8" parent="." instance=ExtResource("2_pr3bu")]
offset_left = -39.0
offset_top = 466.0
offset_right = 761.0
offset_bottom = 1266.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton9" parent="." instance=ExtResource("2_pr3bu")]
offset_left = 137.0
offset_top = 437.0
offset_right = 937.0
offset_bottom = 1237.0
scale = Vector2(0.13, 0.13)
[node name="PhoneButton0" parent="." instance=ExtResource("2_pr3bu")]
offset_left = -41.0
offset_top = 565.0
offset_right = 759.0
offset_bottom = 1365.0
scale = Vector2(0.13, 0.13)

View File

@@ -0,0 +1,20 @@
[gd_scene load_steps=4 format=3 uid="uid://dj6cr426bn30b"]
[ext_resource type="Texture2D" uid="uid://4hculjnuw6ha" path="res://Art/capsule-fill.svg" id="1_6ytam"]
[ext_resource type="Script" uid="uid://cd1nniv27ef2f" path="res://Gameplay/PhoneButton.cs" id="1_d1byk"]
[ext_resource type="PackedScene" uid="uid://if21pf73w7by" path="res://Gameplay/contact.tscn" id="3_3os1s"]
[node name="PhoneButton" type="TextureButton"]
modulate = Color(1, 1, 1, 0.2)
offset_right = 800.0
offset_bottom = 800.0
texture_normal = ExtResource("1_6ytam")
texture_pressed = ExtResource("1_6ytam")
texture_hover = ExtResource("1_6ytam")
texture_disabled = ExtResource("1_6ytam")
texture_focused = ExtResource("1_6ytam")
script = ExtResource("1_d1byk")
[node name="Contact" parent="." instance=ExtResource("3_3os1s")]
position = Vector2(-228, 230)
scale = Vector2(0.13, 0.13)

51
Gameplay/player.tscn Normal file
View File

@@ -0,0 +1,51 @@
[gd_scene load_steps=6 format=3 uid="uid://b7vhq2dkltsv"]
[ext_resource type="Texture2D" uid="uid://c51oi06i4yrvv" path="res://Art/x.png" id="1_c6108"]
[ext_resource type="Script" uid="uid://dth2vcgkp7iq0" path="res://Player.cs" id="1_enp12"]
[ext_resource type="PackedScene" uid="uid://yaybgshgeb3d" path="res://Gameplay/phone.tscn" id="4_1d6nn"]
[ext_resource type="PackedScene" uid="uid://b0ks34m6smjfd" path="res://Gameplay/business_card.tscn" id="5_ek8wa"]
[ext_resource type="PackedScene" uid="uid://bmy783a4c0tal" path="res://Gameplay/boss.tscn" id="5_lfxdo"]
[node name="Player" type="Sprite2D"]
script = ExtResource("1_enp12")
[node name="Phone" parent="." instance=ExtResource("4_1d6nn")]
position = Vector2(1600, 540)
scale = Vector2(0.5, 0.5)
[node name="Boss" parent="." instance=ExtResource("5_lfxdo")]
position = Vector2(960, 540)
[node name="MarkNormal" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("1_c6108")
[node name="MarkPressed" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("1_c6108")
[node name="MarkHovered" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("1_c6108")
[node name="MarkDisabled" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("1_c6108")
[node name="MarkFocused" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("1_c6108")
[node name="Debug" type="RichTextLabel" parent="."]
offset_right = 322.0
offset_bottom = 153.0
theme_override_font_sizes/normal_font_size = 32
text = "DEBUG"
horizontal_alignment = 1
vertical_alignment = 1
[node name="BusinessCard" parent="." instance=ExtResource("5_ek8wa")]
offset_left = 98.0
offset_top = 769.0
offset_right = 298.0
offset_bottom = 969.0