using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ServerCore; using ServerBase; using ServerCommon; using SESSION_ID = System.Int32; using WORLD_META_ID = System.UInt32; using META_ID = System.UInt32; using ENTITY_GUID = System.String; using ACCOUNT_ID = System.String; using OWNER_GUID = System.String; using USER_GUID = System.String; using CHARACTER_GUID = System.String; using ITEM_GUID = System.String; namespace GameServer { public class Character : EntityBase { public Character(Player parent) : base(EntityType.Character, parent) { } public override async Task onInit() { var direct_parent = getDirectParent(); NullReferenceCheckHelper.throwIfNull(direct_parent, () => $"direct_parent is null !!!"); addEntityAttribute(new CharacterAttribute(this, direct_parent)); addEntityAction(new CharacterAction(this)); addEntityAction(new CharacterAppearanceCustomizeAction(this)); return await base.onInit(); } public async Task createByCharacterBaseDoc(CharacterBaseDoc characterBaseDoc) { var err_msg = string.Empty; var result = new Result(); var character_attribute = getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(character_attribute, () => $"character_attribute is null !!!"); result = await ServerBase.DataCopyHelper.copyEntityAttributeFromDocs(character_attribute, new List() { characterBaseDoc }); if( result.isFail() ) { err_msg = $"Failed to copyEntityAttributeFromDocs() !!!, to:{character_attribute.getTypeName()}, from:{this.getTypeName()} - {toBasicString()}, {getRootParent().toBasicString()}"; result.setFail(ServerErrorCode.DynamoDbDocCopyToEntityAttributeFailed, err_msg); Log.getLogger().error(result.toBasicString()); return result; } return result; } public CharacterAttribute.AppearanceProfile getOriginAppearanceProfile() { var character_attribute = getOriginEntityAttribute(); NullReferenceCheckHelper.throwIfNull(character_attribute, () => $"character_attribute is null !!!"); return character_attribute.AppearanceProfileValue; } public override string toSummaryString() { return $"{this.getTypeName()} - {getRootParent().toBasicString()}"; } public override string toBasicString() { return $"{this.getTypeName()} - {getRootParent().toBasicString()}"; } } }