コード例 #1
0
ファイル: ActorManager.cs プロジェクト: floatyears/Decrypt
 private void AddActorCombatLog(ActorController actor)
 {
     if (actor == null || this.combatLog == null)
     {
         return;
     }
     if (actor.HighestDamage > this.combatLog.HighestDamage)
     {
         this.combatLog.HighestDamage = actor.HighestDamage;
     }
     if (actor.HighestHeal > this.combatLog.HighestHeal)
     {
         this.combatLog.HighestHeal = actor.HighestHeal;
     }
     for (int i = 0; i < this.combatLog.Data.Count; i++)
     {
         if (this.combatLog.Data[i].PetID == actor.GetPetInfoID() && this.combatLog.Data[i].SocketSlot == actor.SocketSlot)
         {
             this.combatLog.Data[i].HPPct = (int)actor.CurHP * 100 / (int)actor.MaxHP;
             this.combatLog.Data[i].DamageTaken += actor.DamageTaken;
             this.combatLog.Data[i].DamageTakenCount += actor.DamageTakenCount;
             this.combatLog.Data[i].HealTaken += actor.HealTaken;
             this.combatLog.Data[i].HealTakenCount += actor.HealTakenCount;
             this.combatLog.Data[i].Damage += actor.TotalDamage;
             this.combatLog.Data[i].Heal += actor.TotalHeal;
             for (int j = 0; j < actor.Skills.Length; j++)
             {
                 if (actor.Skills[j] != null && actor.Skills[j].Info != null)
                 {
                     bool flag = false;
                     for (int k = 0; k < this.combatLog.Data[i].Data.Count; k++)
                     {
                         if (actor.Skills[j].Info.ID == this.combatLog.Data[i].Data[k].SkillID)
                         {
                             this.combatLog.Data[i].Data[k].Count += actor.Skills[j].Count;
                             this.combatLog.Data[i].Data[k].Damage += actor.Skills[j].Damage;
                             this.combatLog.Data[i].Data[k].Heal += actor.Skills[j].Heal;
                             if (actor.Skills[j].HighDamage > this.combatLog.Data[i].Data[k].HighDamage)
                             {
                                 this.combatLog.Data[i].Data[k].HighDamage = actor.Skills[j].HighDamage;
                             }
                             flag = true;
                             break;
                         }
                     }
                     if (!flag)
                     {
                         SkillLog skillLog = new SkillLog();
                         skillLog.SkillID = actor.Skills[j].Info.ID;
                         skillLog.Count = actor.Skills[j].Count;
                         skillLog.Damage = actor.Skills[j].Damage;
                         skillLog.Heal = actor.Skills[j].Heal;
                         skillLog.HighDamage = actor.Skills[j].HighDamage;
                         this.combatLog.Data[i].Data.Add(skillLog);
                     }
                 }
             }
             return;
         }
     }
     ActorCombatLog actorCombatLog = new ActorCombatLog();
     actorCombatLog.PetID = actor.GetPetInfoID();
     actorCombatLog.HPPct = (int)actor.CurHP * 100 / (int)actor.MaxHP;
     actorCombatLog.DamageTaken += actor.DamageTaken;
     actorCombatLog.DamageTakenCount += actor.DamageTakenCount;
     actorCombatLog.HealTaken += actor.HealTaken;
     actorCombatLog.HealTakenCount += actor.HealTakenCount;
     actorCombatLog.Damage += actor.TotalDamage;
     actorCombatLog.Heal += actor.TotalHeal;
     actorCombatLog.SocketSlot = actor.SocketSlot;
     for (int l = 0; l < actor.Skills.Length; l++)
     {
         if (actor.Skills[l] != null && actor.Skills[l].Info != null)
         {
             SkillLog skillLog2 = new SkillLog();
             skillLog2.SkillID = actor.Skills[l].Info.ID;
             skillLog2.Count = actor.Skills[l].Count;
             skillLog2.Damage = actor.Skills[l].Damage;
             skillLog2.Heal = actor.Skills[l].Heal;
             skillLog2.HighDamage = actor.Skills[l].HighDamage;
             actorCombatLog.Data.Add(skillLog2);
         }
     }
     this.combatLog.Data.Add(actorCombatLog);
 }