Upload from upload_mods.ps1
This commit is contained in:
122
Scripts/XUIC/NPCs/XUiC_RespawnEntityRebirth.cs
Normal file
122
Scripts/XUIC/NPCs/XUiC_RespawnEntityRebirth.cs
Normal file
@@ -0,0 +1,122 @@
|
||||
using System.Net.NetworkInformation;
|
||||
|
||||
internal class XUiC_RespawnEntityRebirth : XUiController
|
||||
{
|
||||
public XUiV_Label Label;
|
||||
public XUiV_Panel Panel;
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
Panel = (XUiV_Panel)GetChildById("Popup").ViewComponent;
|
||||
((XUiC_SimpleButton)Panel.Controller.GetChildById("btnCancel")).OnPressed += BtnCancel_OnPressed;
|
||||
((XUiC_SimpleButton)Panel.Controller.GetChildById("btnConfirm")).OnPressed += BtnConfirm_OnPressed;
|
||||
Label = (XUiV_Label)Panel.Controller.GetChildById("Label").ViewComponent;
|
||||
}
|
||||
|
||||
public override void OnOpen()
|
||||
{
|
||||
EntityPlayer player = xui.playerUI.entityPlayer;
|
||||
|
||||
var entityID = 0;
|
||||
if (player.Buffs.HasCustomVar("CurrentNPC"))
|
||||
entityID = (int)player.Buffs.GetCustomVar("CurrentNPC");
|
||||
|
||||
if (entityID == 0)
|
||||
return;
|
||||
|
||||
var myEntity = player.world.GetEntity(entityID) as EntityNPCRebirth;
|
||||
if (myEntity != null)
|
||||
{
|
||||
int numHirecost = RebirthUtilities.GetHireCost(entityID);
|
||||
int flNPCLevel = (int)myEntity.Buffs.GetCustomVar("$FR_NPC_Level");
|
||||
numHirecost = numHirecost + (500 * flNPCLevel);
|
||||
int numRespawnCost = numHirecost + (250 * (int)flNPCLevel);
|
||||
|
||||
numRespawnCost = (int)(numRespawnCost * RebirthUtilities.getDiscount(player));
|
||||
|
||||
Label.Text = string.Format(Localization.Get("ttReportForDuty"), myEntity.EntityName);
|
||||
}
|
||||
|
||||
base.OnOpen();
|
||||
}
|
||||
|
||||
private void BtnConfirm_OnPressed(XUiController _sender, int _mouseButton)
|
||||
{
|
||||
//Log.Out("XUiC_RespawnEntityRebirth-BtnConfirm_OnPressed START");
|
||||
EntityPlayer player = xui.playerUI.entityPlayer;
|
||||
bool canRespawn = false;
|
||||
|
||||
var entityID = 0;
|
||||
if (player.Buffs.HasCustomVar("CurrentNPC"))
|
||||
entityID = (int)player.Buffs.GetCustomVar("CurrentNPC");
|
||||
|
||||
if (entityID == 0)
|
||||
{
|
||||
//Log.Out("XUiC_RespawnEntityRebirth-BtnConfirm_OnPressed 1");
|
||||
return;
|
||||
}
|
||||
|
||||
var myEntity = player.world.GetEntity(entityID) as EntityNPCRebirth;
|
||||
if (myEntity == null)
|
||||
{
|
||||
//Log.Out("XUiC_RespawnEntityRebirth-BtnConfirm_OnPressed 2");
|
||||
return;
|
||||
}
|
||||
|
||||
var uiforPlayer = LocalPlayerUI.GetUIForPlayer(player as EntityPlayerLocal);
|
||||
var playerInventory = uiforPlayer.xui.PlayerInventory;
|
||||
if (playerInventory == null)
|
||||
{
|
||||
//Log.Out("XUiC_RespawnEntityRebirth-BtnConfirm_OnPressed 4");
|
||||
return;
|
||||
}
|
||||
|
||||
canRespawn = true;
|
||||
|
||||
if (canRespawn)
|
||||
{
|
||||
EntityNPCRebirth entity = (EntityNPCRebirth)GameManager.Instance.World.GetEntity(entityID);
|
||||
|
||||
entity.Buffs.SetCustomVar("$FR_NPC_Respawn", 0f);
|
||||
entity.factionId = FactionManager.Instance.GetFactionByName("whiteriver").ID;
|
||||
entity.isHirable = true;
|
||||
|
||||
entity.Buffs.RemoveBuff("FuriousRamsayDeathParticle");
|
||||
entity.Buffs.RemoveBuff("FuriousRamsayRespawned");
|
||||
|
||||
//Log.Out("XUiC_RespawnEntityRebirth-BtnConfirm_OnPressed SET TO FOLLOW");
|
||||
entity.attackTarget = (EntityAlive) null;
|
||||
entity.SetRevengeTarget((EntityAlive) null);
|
||||
entity.guardPosition = Vector3.zero;
|
||||
entity.Buffs.SetCustomVar("CurrentOrder", (int)EntityUtilities.Orders.Follow);
|
||||
|
||||
entity.Buffs.RemoveBuff("FuriousRamsayBuffPauseAttack");
|
||||
RebirthManager.UpdateHireInfo(entity.entityId, "order", "guard", Vector3.zero.ToString(), Vector3.zero.ToString());
|
||||
RebirthManager.UpdateHireInfo(entity.entityId, "order", "follow");
|
||||
|
||||
bool blEntityClass = entity.EntityClass.entityClassName.Contains("Survivor");
|
||||
|
||||
if (entity.NavObject != null)
|
||||
{
|
||||
entity.NavObject.IsActive = true;
|
||||
}
|
||||
GameManager.ShowTooltip(GameManager.Instance.World.GetPrimaryPlayer().PlayerUI.xui.playerUI.entityPlayer, entity.EntityName + " " + Localization.Get("ttReportingForDuty"));
|
||||
}
|
||||
|
||||
xui.playerUI.windowManager.Close(windowGroup.ID);
|
||||
}
|
||||
|
||||
private void BtnCancel_OnPressed(XUiController _sender, int _mouseButton)
|
||||
{
|
||||
Panel.IsVisible = false;
|
||||
xui.playerUI.windowManager.Close(windowGroup.ID);
|
||||
}
|
||||
|
||||
public override void OnClose()
|
||||
{
|
||||
if (xui.playerUI.windowManager.HasWindow("dialog") && xui.playerUI.windowManager.IsWindowOpen("dialog"))
|
||||
xui.playerUI.windowManager.Close("dialog");
|
||||
base.OnClose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user