Пример #1
0
    /// <summary>
    /// 获取战斗结果
    /// </summary>
    /// <returns></returns>
    public BattleResultVO GetBattleResult()
    {
        if (result == null)
        {
            result                = new BattleResultVO();
            result.star           = BattleStar;
            result.percentage     = Mathf.RoundToInt(DestroyBuildingPercent * 100);
            result.useDonatedArmy = useDonatedArmy;
            result.stolenResources.AddRange(stolenResources);
            result.rewardCrown = GetBattleRewardCrown(BattleStar > 0, BattleStar);
            RankModel current, next;
            DataCenter.Instance.FindRankModel(RankType.Crown, DataCenter.Instance.Attacker.player.crown,
                                              out current, out next);
            result.rewardGoldByCrownLevel = current.rewardGold;
            result.rewardOilByCrownLevel  = current.rewardOil;
            result.timestamp = DateTimeUtil.DateTimeToUnixTimestampMS(BattleStartTime);
            result.peerId    = DataCenter.Instance.Defender.player.userId;

            result.killedDefenderDonatedArmies.AddRange(killedDefenderDonatedArmies);
            result.brokenTraps.AddRange(brokenTraps);
            foreach (var armyVO in attackerData.armies)
            {
                foreach (var leftArmyVO in DataCenter.Instance.Attacker.armies)
                {
                    if (leftArmyVO.cid == armyVO.cid && leftArmyVO.amount != armyVO.amount)
                    {
                        result.usedArmies.Add(new ArmyVO()
                        {
                            cid = armyVO.cid, amount = armyVO.amount - leftArmyVO.amount
                        });
                        break;
                    }
                }
            }
            foreach (var skillVO in attackerData.skills)
            {
                foreach (var leftSkillVO in DataCenter.Instance.Attacker.skills)
                {
                    if (leftSkillVO.cid == skillVO.cid && leftSkillVO.amount != skillVO.amount)
                    {
                        result.usedSkills.Add(new SkillVO()
                        {
                            cid = skillVO.cid, amount = skillVO.amount - leftSkillVO.amount
                        });
                        break;
                    }
                }
            }
        }

        return(result);
    }
Пример #2
0
    public void Init()
    {
        useDonatedArmy        = false;
        result                = null;
        IsBattleStarted       = false;
        IsBattleEnded         = false;
        hasGotHalfDestroyStar = false;
        stolenResources.Clear();
        stealableResources.Clear();
        killedDefenderDonatedArmies.Clear();
        brokenTraps.Clear();

        totalDefenderBuildingCount = 0;
        BattleStar            = 0;
        defenderBuildingCount = 0;
        attackerArmyCount     = 0;
    }
Пример #3
0
 public BattleResultCommand(BattleResultVO battleResult, BattleReplayVO battleReplay)
 {
     this.battleResult = battleResult;
     this.battleReplay = battleReplay;
 }