Files
tictactoe/Gameplay/Phone.cs

75 lines
1.9 KiB
C#

using Godot;
using Godot.NativeInterop;
using System;
using System.Collections.Generic;
using System.Linq;
public partial class Phone : Sprite2D
{
public bool _running = false;
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.LoadEffect("time_effect_1", "TimeEffects");
}
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 virtual void HangUp()
{
_running = false;
_phoneButtons.ForEach(b=>b._contact.End());
}
public void PassPlayer(Player PLAYER)
{
_player = PLAYER;
for (int i = 0; i < _phoneButtons.Count; i++)
{
_phoneButtons[i]._phone = this;
_phoneButtons[i]._contact.PassNumber((i+1)%10);
}
}
public void ResetContact()
{
// _loadedContact = null;
// _debug.Text = "";
}
public virtual void Start()
{
_running = true;
_phoneButtons.ForEach(b=>b._contact.Start());
}
}