调整部分数据表配置,优化 SpriteCache 功能
This commit is contained in:
@@ -10,7 +10,7 @@ namespace SepCore.UI
|
||||
{
|
||||
private readonly IProcedureMenu _procedureMenu;
|
||||
|
||||
public int SelectedRoleId { get; private set; }
|
||||
public string SelectedRoleName { get; private set; }
|
||||
|
||||
public SelectRoleUseCase(IProcedureMenu procedureMenu)
|
||||
{
|
||||
@@ -19,40 +19,36 @@ namespace SepCore.UI
|
||||
|
||||
public SelectRoleRawData CreateModel()
|
||||
{
|
||||
return BuildModel(0);
|
||||
return BuildModel(null);
|
||||
}
|
||||
|
||||
public SelectRoleRawData SelectRole(int roleId)
|
||||
public SelectRoleRawData SelectRole(string roleName)
|
||||
{
|
||||
SelectedRoleId = roleId;
|
||||
return BuildModel(roleId);
|
||||
SelectedRoleName = roleName;
|
||||
return BuildModel(roleName);
|
||||
}
|
||||
|
||||
public SelectRoleRawData ClearSelection()
|
||||
{
|
||||
SelectedRoleId = 0;
|
||||
return BuildModel(0);
|
||||
SelectedRoleName = null;
|
||||
return BuildModel(null);
|
||||
}
|
||||
|
||||
public bool ConfirmSelectedRole()
|
||||
{
|
||||
IReadOnlyList<RoleConfig> roles = GameEntry.Luban.GetTable<RoleConfig>();
|
||||
if (roles == null || roles.Count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (SelectedRoleId <= 0 || !roles.Any(r => r.Id == SelectedRoleId))
|
||||
var roles = GameEntry.Luban.GetTable<RoleConfig>();
|
||||
var config = GameEntry.Luban.Get<RoleConfig>(SelectedRoleName);
|
||||
if (string.IsNullOrEmpty(SelectedRoleName) || config == null)
|
||||
{
|
||||
int randomIndex = Random.Range(0, roles.Count);
|
||||
SelectedRoleId = roles[randomIndex].Id;
|
||||
SelectedRoleName = roles[randomIndex].Name;
|
||||
}
|
||||
|
||||
_procedureMenu.ConfirmSelectRole(SelectedRoleId);
|
||||
_procedureMenu.ConfirmSelectRole(SelectedRoleName);
|
||||
return true;
|
||||
}
|
||||
|
||||
private SelectRoleRawData BuildModel(int selectedRoleId)
|
||||
private SelectRoleRawData BuildModel(string selectedRoleName)
|
||||
{
|
||||
IReadOnlyList<RoleConfig> roles = GameEntry.Luban.GetTable<RoleConfig>();
|
||||
int count = roles.Count;
|
||||
@@ -61,18 +57,19 @@ namespace SepCore.UI
|
||||
{
|
||||
roleItems[i] = new RoleItemRawData
|
||||
{
|
||||
RoleId = roles[i].Id,
|
||||
IconName = roles[i].IconName
|
||||
RoleName = roles[i].Name,
|
||||
IconName = roles[i].Sprite
|
||||
};
|
||||
}
|
||||
|
||||
RoleConfig selectedRole = selectedRoleId > 0 ? roles.FirstOrDefault(r => r.Id == selectedRoleId) : null;
|
||||
RoleConfig selectedRole = string.IsNullOrEmpty(selectedRoleName)
|
||||
? null
|
||||
: roles.FirstOrDefault(r => r.Name == selectedRoleName);
|
||||
RolePropertyAreaRawData selectedRoleData = selectedRole == null
|
||||
? null
|
||||
: new RolePropertyAreaRawData
|
||||
{
|
||||
RoleId = selectedRole.Id,
|
||||
RoleName = selectedRole.RoleName,
|
||||
Name = selectedRole.Name,
|
||||
InitialProperties = selectedRole.Modifiers
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user