public AvatarState(AvatarState avatarState) : base(avatarState.address) { if (avatarState == null) { throw new ArgumentNullException(nameof(avatarState)); } name = avatarState.name; characterId = avatarState.characterId; level = avatarState.level; exp = avatarState.exp; inventory = avatarState.inventory; worldInformation = avatarState.worldInformation; updatedAt = avatarState.updatedAt; agentAddress = avatarState.agentAddress; questList = avatarState.questList; mailBox = avatarState.mailBox; blockIndex = avatarState.blockIndex; dailyRewardReceivedIndex = avatarState.dailyRewardReceivedIndex; actionPoint = avatarState.actionPoint; stageMap = avatarState.stageMap; monsterMap = avatarState.monsterMap; itemMap = avatarState.itemMap; eventMap = avatarState.eventMap; hair = avatarState.hair; lens = avatarState.lens; ear = avatarState.ear; tail = avatarState.tail; combinationSlotAddresses = avatarState.combinationSlotAddresses; RankingMapAddress = avatarState.RankingMapAddress; PostConstructor(); }
public int UpdateV3(AvatarState avatarState, ArenaInfo enemyInfo, BattleLog.Result result) { switch (result) { case BattleLog.Result.Win: ArenaRecord.Win++; break; case BattleLog.Result.Lose: ArenaRecord.Lose++; break; case BattleLog.Result.TimeOver: ArenaRecord.Draw++; return(0); default: throw new ArgumentOutOfRangeException(nameof(result), result, null); } var score = ArenaScoreHelper.GetScoreV1(Score, enemyInfo.Score, result); var calculated = Score + score; var current = Score; Score = Math.Max(1000, calculated); DailyChallengeCount--; ArmorId = avatarState.GetArmorId(); Level = avatarState.level; return(Score - current); }
public bool Validate(AvatarState avatarState, long blockIndex) { if (avatarState is null) { return(false); } return(avatarState.worldInformation.IsStageCleared(UnlockStage) && blockIndex >= UnlockBlockIndex); }
public RankingInfo(AvatarState avatarState) { AvatarAddress = avatarState.address; AgentAddress = avatarState.agentAddress; ArmorId = avatarState.GetArmorId(); Level = avatarState.level; AvatarName = avatarState.NameWithHash; Exp = avatarState.exp; avatarState.worldInformation.TryGetUnlockedWorldByStageClearedBlockIndex(out var detail); StageClearedBlockIndex = detail.StageClearedBlockIndex; UpdatedAt = avatarState.updatedAt; }
public void Update(AvatarState state) { if (_map.TryGetValue(state.address, out var current)) { if (current.Exp < state.exp) { _map[state.address] = new RankingInfo(state); } } else { _map[state.address] = new RankingInfo(state); } }
public ArenaInfo(AvatarState avatarState, CharacterSheet characterSheet, bool active) { AvatarAddress = avatarState.address; AgentAddress = avatarState.agentAddress; AvatarName = avatarState.NameWithHash; ArenaRecord = new Record(); Level = avatarState.level; var armor = avatarState.inventory.Items.Select(i => i.item).OfType <Armor>().FirstOrDefault(e => e.equipped); ArmorId = armor?.Id ?? GameConfig.DefaultAvatarArmorId; CombatPoint = CPHelper.GetCP(avatarState, characterSheet); Active = active; DailyChallengeCount = GameConfig.ArenaChallengeCountMax; Score = GameConfig.ArenaScoreDefault; }
public void SetV2(AvatarState avatarState, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet) { UpdateV2(avatarState, characterSheet, costumeStatSheet); }
public void Set(AvatarState avatarState, CharacterSheet characterSheet) { Update(avatarState, characterSheet); }
private void UpdateV2(AvatarState avatarState, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet, bool active = false) { Add(avatarState.address, new ArenaInfo(avatarState, characterSheet, costumeStatSheet, active)); }
public ArenaInfo(AvatarState avatarState, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet, bool active) : this(avatarState, characterSheet, active) { CombatPoint = CPHelper.GetCPV2(avatarState, characterSheet, costumeStatSheet); }
public void UpdateV2(AvatarState state, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet) { ArmorId = state.GetArmorId(); Level = state.level; CombatPoint = CPHelper.GetCPV2(state, characterSheet, costumeStatSheet); }
public void UpdateV1(AvatarState state, CharacterSheet characterSheet) { ArmorId = state.GetArmorId(); Level = state.level; CombatPoint = CPHelper.GetCP(state, characterSheet); }
public DeletedAvatarState(AvatarState avatarState, long blockIndex) : base(avatarState) { deletedAt = blockIndex; }
public DeletedAvatarState(AvatarState avatarState, DateTimeOffset deletedAt) : base(avatarState) { this.deletedAt = deletedAt; }