Example #1
0
        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();
        }
Example #2
0
        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);
        }
Example #3
0
        public bool Validate(AvatarState avatarState, long blockIndex)
        {
            if (avatarState is null)
            {
                return(false);
            }

            return(avatarState.worldInformation.IsStageCleared(UnlockStage) &&
                   blockIndex >= UnlockBlockIndex);
        }
Example #4
0
 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;
 }
Example #5
0
 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);
     }
 }
Example #6
0
        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;
        }
Example #7
0
 public void SetV2(AvatarState avatarState, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet)
 {
     UpdateV2(avatarState, characterSheet, costumeStatSheet);
 }
Example #8
0
 public void Set(AvatarState avatarState, CharacterSheet characterSheet)
 {
     Update(avatarState, characterSheet);
 }
Example #9
0
 private void UpdateV2(AvatarState avatarState, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet,
                       bool active = false)
 {
     Add(avatarState.address, new ArenaInfo(avatarState, characterSheet, costumeStatSheet, active));
 }
Example #10
0
 public ArenaInfo(AvatarState avatarState, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet, bool active)
     : this(avatarState, characterSheet, active)
 {
     CombatPoint = CPHelper.GetCPV2(avatarState, characterSheet, costumeStatSheet);
 }
Example #11
0
 public void UpdateV2(AvatarState state, CharacterSheet characterSheet, CostumeStatSheet costumeStatSheet)
 {
     ArmorId     = state.GetArmorId();
     Level       = state.level;
     CombatPoint = CPHelper.GetCPV2(state, characterSheet, costumeStatSheet);
 }
Example #12
0
 public void UpdateV1(AvatarState state, CharacterSheet characterSheet)
 {
     ArmorId     = state.GetArmorId();
     Level       = state.level;
     CombatPoint = CPHelper.GetCP(state, characterSheet);
 }
Example #13
0
 public DeletedAvatarState(AvatarState avatarState, long blockIndex)
     : base(avatarState)
 {
     deletedAt = blockIndex;
 }
Example #14
0
 public DeletedAvatarState(AvatarState avatarState, DateTimeOffset deletedAt)
     : base(avatarState)
 {
     this.deletedAt = deletedAt;
 }