초기커밋

This commit is contained in:
2025-05-01 07:20:41 +09:00
commit 98bb2e3c5c
2747 changed files with 646947 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static StackExchange.Redis.Role;
using ServerCore; using ServerBase;
using ServerCommon;
using ServerCommon.BusinessLogDomain;
using static ServerCommon.MetaHelper;
using GameServer;
namespace GameServer
{
public class CharacterAppearanceCustomizeAction : EntityActionBase
{
public CharacterAppearanceCustomizeAction(Character owner)
: base(owner)
{
}
public override async Task<Result> onInit()
{
await Task.CompletedTask;
var result = new Result();
return result;
}
public override void onClear()
{
return;
}
public async Task<(Result, CharacterAttribute.AppearanceProfile?)> tryCustomizeAppearance(AppearanceCustomization appearCustomize)
{
ArgumentNullReferenceCheckHelper.throwIfNull(appearCustomize, () => $"appearCustomize is null !!!");
var character = getOwner() as Character;
NullReferenceCheckHelper.throwIfNull(character, () => $"character is null !!!");
var player = character.getRootParent() as Player;
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var result = new Result();
var err_msg = string.Empty;
//=====================================================================================
// 1. 금전을 소모 한다.
//=====================================================================================
var money_action = player.getEntityAction<MoneyAction>();
NullReferenceCheckHelper.throwIfNull(money_action, () => $"money_action is null !!! - {player.toBasicString()}");
var req_currency_type = (CurrencyType)ServerCommon.MetaHelper.GameConfigMeta.CharacterCustomizeCostType;
result = await money_action.spendMoney(req_currency_type, GameConfigMeta.CharacterCustomizeCost);
if (result.isFail())
{
return (result, null);
}
//=====================================================================================
// 2. 캐릭터 외형 커스마이징 정보를 갱신 한다.
//=====================================================================================
var appearance_profile = updateAppearanceCustomize(appearCustomize);
NullReferenceCheckHelper.throwIfNull(appearance_profile, () => $"appearance_profile is null !!! - {player.toBasicString()}");
return (result, appearance_profile);
}
private CharacterAttribute.AppearanceProfile updateAppearanceCustomize(AppearanceCustomization appearCustomize)
{
ArgumentNullReferenceCheckHelper.throwIfNull(appearCustomize, () => $"appearCustomize is null !!!");
var character = getOwner() as Character;
NullReferenceCheckHelper.throwIfNull(character, () => $"character is null !!!");
var character_attribute = character.getEntityAttribute<CharacterAttribute>();
NullReferenceCheckHelper.throwIfNull(character_attribute, () => $"character_attribute is null !!!");
var appearance_profile = character_attribute.AppearanceProfileValue;
NullReferenceCheckHelper.throwIfNull(appearance_profile, () => $"appearance_profile is null !!!");
appearance_profile.BasicStyle = (UInt32)appearCustomize.BasicStyle;
appearance_profile.BodyShape = (UInt32)appearCustomize.BodyShape;
appearance_profile.HairStyle = (UInt32)appearCustomize.HairStyle;
appearance_profile.CustomValues = appearCustomize.CustomValues.ToList();
character_attribute.modifiedEntityAttribute();
return appearance_profile;
}
}
}