NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Debug/SROptions.GM.cs

197 lines
4.6 KiB
C#

using Code.Scripts.Gameplay.Game;
using Cysharp.Threading.Tasks;
using Gameplay.Character;
using Gameplay.Net;
using Gameplay.Unit;
using Gameplay.Unit.Data;
using System.ComponentModel;
public partial class SROptions
{
private bool _useFullCharacters;
[Category("GM"), DisplayName("使用全角色")]
public bool UseFullCharacters
{
get { return _useFullCharacters; }
set { _useFullCharacters = value; }
}
[Category("GM"), DisplayName("添加所有角色")]
public void ForceAddAllRoles()
{
CharacterDataInfoManager.Instance.AddAllCfgCharacter();
VehicleCultivateDataManager.Instance.AddAllCfgVehicles();
}
[Category("GM"), DisplayName("己方无敌")]
public bool SelfUnbeatable
{
get { return _selfUnbeatable; }
set { _selfUnbeatable = value; }
}
private bool _selfUnbeatable = false;
[Category("GM"), DisplayName("敌方无敌")]
public bool EnemyUnbeatable
{
get { return _enemyUnbeatable; }
set { _enemyUnbeatable = value; }
}
private bool _enemyUnbeatable = false;
private int _emojiId;
[Category("GM"), DisplayName("表情ID")]
public int EmojiId
{
get { return _emojiId; }
set
{
if (_emojiId.Equals(value)) return;
_emojiId = value;
SetEmoji();
}
}
[Category("GM"), DisplayName("设置表情")]
public void SetEmoji()
{
var allUnits = GameUnitManager.instance.infightUnits;
for (int i = 0; i < allUnits.count; i++)
{
var unit = allUnits.GetByIndex(i);
if (unit.gameunitType != EGameUnitType.Character) continue;
if (unit is Character character)
character.emojiManager.SwitchEmoji(_emojiId);
}
}
[Category("GM"), DisplayName("机器人数据初始化")]
public void SendRobotTestInit()
{
if (UnityEngine.Application.isPlaying)
{
Gameplay.Net.NetHelper.RobotTestInit();
}
}
[Category("GM"), DisplayName("进入测试剧情")]
public void EnterStory()
{
GameStateManager.Instance.ChangeState(new GameStateStory("1"));
}
private string gc;
[Category("礼包兑换")]
public string GiftCode
{
get { return gc; }
set { gc = value; }
}
[Category("礼包兑换")]
public void DoGiftCode()
{
if (UnityEngine.Application.isPlaying)
{
Gameplay.Net.NetHelper.GiftCode(GiftCode);
}
}
[Category("屏幕适配"), DisplayName("显示UI适配安全区域")]
public bool IsShowScreenSafeArea
{
get { return DebugScreen.Instance.IsShowSafeArea; }
set
{
DebugScreen.Instance.IsShowSafeArea = value;
DebugScreen.Instance.DebugChangeShowAreaState();
}
}
[Category("角色语音开关"), DisplayName("开启角色语音")]
public bool IsOpenSpeakVoice
{
get { return AudioManager.Instance.GlobalIsSpeakOpen; }
set { AudioManager.Instance.GlobalIsSpeakOpen = value; }
}
private int _itemId;
[Category("GM增加物品"), DisplayName("物品ID")]
public int ItemId
{
get { return _itemId; }
set
{
if (_itemId.Equals(value)) return;
_itemId = value;
}
}
private int _itemsCount=1;
[Category("GM增加物品"), DisplayName("物品个数")]
public int ItemsCount
{
get { return _itemsCount; }
set
{
if (_itemsCount.Equals(value)) return;
_itemsCount = value;
}
}
private string GMToken = "phxh666";
[Category("GM增加物品"), DisplayName("增加指定物品")]
public async void AddItem()
{
if(_itemsCount==0)
{
return;
}
string url = GetURL(GMToken, GetIp(), Actor.Instance.Base.GetProp(NLDPB.ActorProp.ActorId).ToString());
var request = UnityEngine.Networking.UnityWebRequest.Get(url);
await request.SendWebRequest();
//DebugUtil.LogError("gm新错" + request.downloadHandler.text);
}
private string GetURL(string token, string ip, string actor)
{
string param = "";
if (_itemId <= 0 || _itemsCount <= 0)
return null;
param = $"{_itemId},{_itemsCount}";
return $"http://{ip}/gm?actor_id={actor}&command=AddItem&gm_token={token}&param={param}";
}
private string GetIp()
{
var serverInfo = AppConfig.Instance.GetCurrent();
return serverInfo.addrs[0].ip + ":8080";
}
}