当前位置: 首页>>代码示例>>C#>>正文


C# Combatant.GetBlockBonus方法代码示例

本文整理汇总了C#中Combatant.GetBlockBonus方法的典型用法代码示例。如果您正苦于以下问题:C# Combatant.GetBlockBonus方法的具体用法?C# Combatant.GetBlockBonus怎么用?C# Combatant.GetBlockBonus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Combatant的用法示例。


在下文中一共展示了Combatant.GetBlockBonus方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ChangeValue

    public int ChangeValue(int statusID, int elementID, Combatant user, Combatant target, 
			bool showNumber, float damageFactor, float damageMultiplier)
    {
        int change = 0;
        if(this.active)
        {
            if(this.blockable && DataHolder.GameSettings().GetRandom() <=
                (DataHolder.Formulas().formula[target.baseBlock].Calculate(user, target) + target.GetBlockBonus()))
            {
                DataHolder.BattleSystemData().blockTextSettings.ShowText("", target);
            }
            else
            {
                change = this.GetChange(user, target, damageFactor, damageMultiplier);
                int oldValue = target.status[statusID].GetValue();

                // set the new value to the target status
                if(this.IsAdd())
                {
                    if(target.status[statusID].IsNormal())
                    {
                        target.status[statusID].AddBaseValue(change);
                        target.status[statusID].AddValue(change, false, false, showNumber);
                    }
                    else
                    {
                        if(change < 0)
                        {
                            change = this.GetDefendedChange(change, elementID, user, target);
                        }
                        target.status[statusID].AddValue(change, false, false, showNumber);
                    }
                }
                else if(this.IsSub())
                {
                    if(target.status[statusID].IsNormal())
                    {
                        target.status[statusID].AddBaseValue(-change);
                        target.status[statusID].AddValue(-change, false, false, showNumber);
                    }
                    else
                    {
                        if(change > 0)
                        {
                            change = this.GetDefendedChange(change, elementID, user, target);
                        }
                        target.status[statusID].AddValue(-change, false, false, showNumber);
                    }
                }
                else if(this.IsSet())
                {
                    if(target.status[statusID].IsNormal())
                    {
                        target.status[statusID].SetBaseValue(change);
                        target.status[statusID].SetValue(change, false, false, showNumber);
                    }
                    else
                    {
                        target.status[statusID].SetValue(change, false, false, showNumber);
                    }
                }
                for(int j=0; j<target.status.Length; j++) target.status[j].CheckBounds();
                // set aggressive if attacked
                if(target.status[statusID].IsConsumable() &&
                    target.status[statusID].GetValue() < oldValue)
                {
                    target.CheckAggressive(AggressiveType.DAMAGE);
                }
                // cancel skills
                if(this.cancelSkills)
                {
                    target.CancelSkillCast();
                }
            }
        }
        return change;
    }
开发者ID:hughrogers,项目名称:RPGQuest,代码行数:77,代码来源:ValueChange.cs


注:本文中的Combatant.GetBlockBonus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。