120 lines
3.7 KiB
C#
120 lines
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Thousandto.Cfg.Data;
|
|
using Thousandto.Code.Center;
|
|
|
|
namespace Thousandto.Code.Logic
|
|
{
|
|
/// <summary>
|
|
/// 角色设置
|
|
/// </summary>
|
|
public class RoleSetting : SettingProcessBase
|
|
{
|
|
#region//成员变量
|
|
//设置自动释放xp技能的等级
|
|
private int _autoXpLevel = -1;
|
|
public int AutoXPLevel
|
|
{
|
|
get
|
|
{
|
|
if (_autoXpLevel < 0)
|
|
{
|
|
var dg = DeclareGlobal.Get(1857);
|
|
if(dg != null) int.TryParse(dg.Params, out _autoXpLevel);
|
|
if (_autoXpLevel < 0) _autoXpLevel = 10;
|
|
}
|
|
return _autoXpLevel;
|
|
}
|
|
}
|
|
|
|
|
|
//角色设置
|
|
private GameRoleSetting _roleSetting = new GameRoleSetting();
|
|
#endregion
|
|
|
|
#region//属性
|
|
public ulong RoleID
|
|
{
|
|
get
|
|
{
|
|
return _roleSetting.RoleID;
|
|
|
|
}
|
|
set
|
|
{
|
|
if (_roleSetting.RoleID != value)
|
|
{
|
|
_roleSetting.SaveAll();
|
|
_roleSetting.RoleID = value;
|
|
_roleSetting.ReadAll();
|
|
RefreshRoleToGameSetting();
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region//继承父类函数,设置默认配置
|
|
protected override void OnRegisterSettingChangedHandler()
|
|
{
|
|
base.OnRegisterSettingChangedHandler();
|
|
AddSettingChangedHandler(GameSettingKeyCode.MandateUseXPSkill, OnMandateUseXPSkillChanged);
|
|
AddSettingChangedHandler(GameSettingKeyCode.MandateUseXPSkill_LevelSet, OnMandateUseXPSkillLevelSetChanged);
|
|
}
|
|
protected override void OnUninitializeBefore()
|
|
{
|
|
_roleSetting.SaveAll();
|
|
base.OnUninitializeBefore();
|
|
}
|
|
#endregion
|
|
|
|
#region//公共函数
|
|
|
|
public void SaveData()
|
|
{
|
|
_roleSetting.SaveAll();
|
|
}
|
|
|
|
public void OnRoleLevelChanged(int level)
|
|
{
|
|
if (level >= AutoXPLevel)
|
|
{
|
|
if (GameCenter.GameSetting.GetSetting(GameSettingKeyCode.MandateUseXPSkill_LevelSet) <= 0)
|
|
{
|
|
GameCenter.PushFixEvent(Global.LogicEventDefine.EID_EVENT_SETAUTOUSE_FLYSWORD_SKILL, true);
|
|
GameCenter.GameSetting.SetSetting(GameSettingKeyCode.MandateUseXPSkill, 1);
|
|
GameCenter.GameSetting.SetSetting(GameSettingKeyCode.MandateUseXPSkill_LevelSet, 1);
|
|
GameCenter.LuaSystem.Adaptor.RestartMandate();
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region //配置改变后的处理函数
|
|
|
|
//自动增加挂机时间
|
|
public void OnMandateUseXPSkillChanged(int value)
|
|
{
|
|
_roleSetting.Set((int)GameSettingKeyCode.MandateUseXPSkill, value, true, true);
|
|
GameCenter.LuaSystem.Adaptor.RestartMandate();
|
|
}
|
|
|
|
public void OnMandateUseXPSkillLevelSetChanged(int value)
|
|
{
|
|
_roleSetting.Set((int)GameSettingKeyCode.MandateUseXPSkill_LevelSet, value, true, true);
|
|
}
|
|
#endregion
|
|
|
|
#region//从角色刷新到Game Setting中
|
|
|
|
private void RefreshRoleToGameSetting()
|
|
{
|
|
GameSettingCore.Set(GameSettingKeyCode.MandateUseXPSkill, _roleSetting.Get((int)GameSettingKeyCode.MandateUseXPSkill), true, false);
|
|
GameSettingCore.Set(GameSettingKeyCode.MandateUseXPSkill_LevelSet, _roleSetting.Get((int)GameSettingKeyCode.MandateUseXPSkill_LevelSet), true, false);
|
|
}
|
|
#endregion
|
|
}
|
|
}
|