mirror of
https://github.com/project-redbud/FunGame-Desktop.git
synced 2025-04-22 04:59:34 +08:00
完善EndGame的预留接口
This commit is contained in:
parent
699bd1888a
commit
6cd709ea0b
@ -5,7 +5,7 @@ using Milimoe.FunGame.Desktop.Library.Component;
|
|||||||
namespace Milimoe.FunGame.Desktop.Library.Base
|
namespace Milimoe.FunGame.Desktop.Library.Base
|
||||||
{
|
{
|
||||||
public class BaseMain : GeneralForm, IConnectEventHandler, IDisconnectEventHandler, ILoginEventHandler, ILogoutEventHandler, IIntoRoomEventHandler, ISendTalkEventHandler,
|
public class BaseMain : GeneralForm, IConnectEventHandler, IDisconnectEventHandler, ILoginEventHandler, ILogoutEventHandler, IIntoRoomEventHandler, ISendTalkEventHandler,
|
||||||
ICreateRoomEventHandler, IQuitRoomEventHandler, IStartMatchEventHandler, IStartGameEventHandler, IOpenInventoryEventHandler, IOpenStoreEventHandler
|
ICreateRoomEventHandler, IQuitRoomEventHandler, IStartMatchEventHandler, IStartGameEventHandler, IEndGameEventHandler, IOpenInventoryEventHandler, IOpenStoreEventHandler
|
||||||
{
|
{
|
||||||
public event IConnectEventHandler.BeforeEventHandler? BeforeConnect;
|
public event IConnectEventHandler.BeforeEventHandler? BeforeConnect;
|
||||||
public event IConnectEventHandler.AfterEventHandler? AfterConnect;
|
public event IConnectEventHandler.AfterEventHandler? AfterConnect;
|
||||||
@ -306,5 +306,30 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
|||||||
{
|
{
|
||||||
FailedOpenStore?.Invoke(sender, e);
|
FailedOpenStore?.Invoke(sender, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public event IEventHandler.BeforeEventHandler? BeforeEndGame;
|
||||||
|
public event IEventHandler.AfterEventHandler? AfterEndGame;
|
||||||
|
public event IEventHandler.SucceedEventHandler? SucceedEndGame;
|
||||||
|
public event IEventHandler.FailedEventHandler? FailedEndGame;
|
||||||
|
|
||||||
|
public void OnBeforeEndGameEvent(object sender, GeneralEventArgs e)
|
||||||
|
{
|
||||||
|
BeforeEndGame?.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnAfterEndGameEvent(object sender, GeneralEventArgs e)
|
||||||
|
{
|
||||||
|
AfterEndGame?.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnSucceedEndGameEvent(object sender, GeneralEventArgs e)
|
||||||
|
{
|
||||||
|
SucceedEndGame?.Invoke(sender, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnFailedEndGameEvent(object sender, GeneralEventArgs e)
|
||||||
|
{
|
||||||
|
FailedEndGame?.Invoke(sender, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -512,15 +512,32 @@ namespace Milimoe.FunGame.Desktop.UI
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 游戏结束,结算
|
/// 游戏结束,结算
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void EndGame(Room room, List<User> users)
|
private void EndGame(params object[] args)
|
||||||
{
|
{
|
||||||
Visible = true;
|
// 触发事件 如果before事件返回false 则不能认定为游戏结束
|
||||||
// test
|
GeneralEventArgs e = new(args);
|
||||||
WritelnGameInfo("===== TEST =====");
|
OnBeforeEndGameEvent(this, e);
|
||||||
SetButtonEnabled(true, ClientState.InRoom);
|
RunTime.PluginLoader?.OnBeforeEndGameEvent(this, e);
|
||||||
_InGame = false;
|
if (e.Cancel)
|
||||||
WritelnGameInfo("游戏结束!" + " [ " + users[new Random().Next(users.Count)] + " ] " + "是赢家!");
|
{
|
||||||
RunTime.Controller?.EndGame();
|
return;
|
||||||
|
}
|
||||||
|
if (RunTime.Controller?.EndGame() ?? false)
|
||||||
|
{
|
||||||
|
// 恢复界面
|
||||||
|
Visible = true;
|
||||||
|
_InGame = false;
|
||||||
|
SetButtonEnabled(true, ClientState.InRoom);
|
||||||
|
OnSucceedEndGameEvent(this, e);
|
||||||
|
RunTime.PluginLoader?.OnSucceedEndGameEvent(this, e);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OnFailedEndGameEvent(this, e);
|
||||||
|
RunTime.PluginLoader?.OnFailedEndGameEvent(this, e);
|
||||||
|
}
|
||||||
|
OnAfterEndGameEvent(this, e);
|
||||||
|
RunTime.PluginLoader?.OnAfterEndGameEvent(this, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user