mirror of
https://github.com/project-redbud/FunGame-Desktop.git
synced 2025-04-20 20:19: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
|
||||
{
|
||||
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.AfterEventHandler? AfterConnect;
|
||||
@ -306,5 +306,30 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
{
|
||||
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>
|
||||
private void EndGame(Room room, List<User> users)
|
||||
private void EndGame(params object[] args)
|
||||
{
|
||||
// 触发事件 如果before事件返回false 则不能认定为游戏结束
|
||||
GeneralEventArgs e = new(args);
|
||||
OnBeforeEndGameEvent(this, e);
|
||||
RunTime.PluginLoader?.OnBeforeEndGameEvent(this, e);
|
||||
if (e.Cancel)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (RunTime.Controller?.EndGame() ?? false)
|
||||
{
|
||||
// 恢复界面
|
||||
Visible = true;
|
||||
// test
|
||||
WritelnGameInfo("===== TEST =====");
|
||||
SetButtonEnabled(true, ClientState.InRoom);
|
||||
_InGame = false;
|
||||
WritelnGameInfo("游戏结束!" + " [ " + users[new Random().Next(users.Count)] + " ] " + "是赢家!");
|
||||
RunTime.Controller?.EndGame();
|
||||
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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user