64 lines
1.8 KiB
C#
64 lines
1.8 KiB
C#
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 Contact _loadedContact;
|
|
public CallButton _callButton;
|
|
public RichTextLabel _debug;
|
|
public override void _Ready()
|
|
{
|
|
_debug = GetNode<RichTextLabel>("Debug");
|
|
_callButton = GetNode<CallButton>("CallButton");
|
|
_callButton._phone = this;
|
|
_phoneButtons = GetChildren().Where(c=>c is PhoneButton).Cast<PhoneButton>().ToList();
|
|
for (int i = 0; i < _phoneButtons.Count; i++)
|
|
{
|
|
_phoneButtons[i]._phone = this;
|
|
}
|
|
_phoneButtons[0]._contact = new SlideBack2();
|
|
_phoneButtons[1]._contact = new Rotate90();
|
|
_phoneButtons[2]._contact = new Swap1And6();
|
|
_phoneButtons[3]._contact = new Shift1ColumnRight();
|
|
}
|
|
|
|
public override void _Process(double DELTA_)
|
|
{
|
|
// _hoveredButton = _phoneButtons.FirstOrDefault(c => c._isHovered, null);
|
|
}
|
|
|
|
public void CallLoadedContact()
|
|
{
|
|
_loadedContact.CallAction();
|
|
ResetContact();
|
|
}
|
|
|
|
public void LoadContact(Contact CONTACT)
|
|
{
|
|
_loadedContact = CONTACT;
|
|
_debug.Text = _loadedContact.GetType().ToString();
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
|
|
public void ResetContact()
|
|
{
|
|
// _loadedContact = null;
|
|
// _debug.Text = "";
|
|
}
|
|
}
|