Пример #1
0
        private void UpdateKillAddCritical(CharacterInfo sender)
        {
            KillAddCritical     attr        = sender.TalentManager.GetTalentAttribute(AttributeId.kKillAddCritical) as KillAddCritical;
            CombatStatisticInfo combat_info = sender.GetCombatStatisticInfo();

            if (attr != null && combat_info != null)
            {
                attr.OnKill(combat_info.LastHitCountId);
            }
        }
Пример #2
0
        private bool AdjustCritical(CharacterInfo sender, out float critical)
        {
            critical = sender.GetActualProperty().Critical;
            KillAddCritical     attr        = sender.TalentManager.GetTalentAttribute(AttributeId.kKillAddCritical) as KillAddCritical;
            CombatStatisticInfo combat_info = sender.GetCombatStatisticInfo();

            if (attr != null && combat_info != null)
            {
                attr.OnHit(combat_info.LastHitCountId);
                if (attr.IsCriticalHit(combat_info.LastHitCountId))
                {
                    float new_critical = critical + attr.CriticalAdd;
                    new_critical = new_critical > 1 ? 1 : new_critical;
                    sender.GetActualProperty().SetCritical(Operate_Type.OT_Absolute, new_critical);
                    //LogSystem.Error("----critical: set critical = {0}", new_critical);
                }
                return(true);
            }
            return(false);
        }