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


C# Pawn.TakeDamage方法代码示例

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


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

示例1: InteractWithPawn

        /// <summary>
        ///     Damages the pawn.
        /// </summary>
        /// <param name="pawn">The pawn.</param>
        protected override void InteractWithPawn(Pawn pawn)
        {
            // Cause fire damage.
            pawn.TakeDamage(new DamageInfo(TrapDef.TrapDamageDef, Mathf.CeilToInt(_damageRange.RandomInRange), this));

            // Create a fire source.
            pawn.TryAttachFire(fireSize.RandomInRange);
        }
开发者ID:RShackleton,项目名称:RimWorld-MoreTraps,代码行数:12,代码来源:Building_FirePit.cs

示例2: InteractWithPawn

        /// <summary>
        ///     Damages the pawn.
        /// </summary>
        /// <param name="pawn">The pawn.</param>
        protected override void InteractWithPawn(Pawn pawn)
        {
            var bodyPartDamageInfo = new BodyPartDamageInfo(GetDamagedBodyPartHeight(), BodyPartDepth.Outside);

            var num = Mathf.RoundToInt(this.GetStatValue(StatDefOf.TrapMeleeDamage)*TrapDamageFactor.RandomInRange);

            var randomInRange = DamageCount.RandomInRange;

            for (var index = 0; index < randomInRange && num > 0; ++index)
            {
                var amount = Mathf.Max(1, Mathf.RoundToInt(Rand.Value*num));

                num -= amount;

                pawn.TakeDamage(new DamageInfo(DamageDefOf.Stab, amount, this, bodyPartDamageInfo));
            }
        }
开发者ID:RShackleton,项目名称:RimWorld-MoreTraps,代码行数:21,代码来源:Building_SpikeTrap.cs

示例3: PawnResting

        private void PawnResting(Pawn p)
        {
            if (p.needs.rest.CurLevel < 1)
            {
                float restEffectiveness = this.GetStatValue(StatDefOf.BedRestEffectiveness, true);
                p.needs.rest.CurLevel += (restEffectiveness / 100);

                int amount = 6;
                int num = this.def.building.bed_healTickInterval;
                if (p.health.hediffSet.GetNaturallyHealingInjuredParts().Any<BodyPartRecord>() && p.needs.food != null && !p.needs.food.Starving)
                {
                    BodyPartRecord part = p.health.hediffSet.GetNaturallyHealingInjuredParts().RandomElement<BodyPartRecord>();
                    List<HediffDef> healHediff = (
                        from def in DefDatabase<HediffDef>.AllDefs
                        where def.naturallyHealed
                        select def).ToList<HediffDef>();
                    BodyPartDamageInfo value = new BodyPartDamageInfo(part, false, healHediff);
                    p.TakeDamage(new DamageInfo(DamageDefOf.HealInjury, amount, null, new BodyPartDamageInfo?(value), null));
                    if (p.health.ShouldGetTreatment && p.health.WantsToRemainInBedForMedicine && p.health.hediffSet.GetNaturallyHealingInjuredParts().Any<BodyPartRecord>())
                    {
                        object[] args = new object[]
                    {
                        p.LabelBaseShort
                    };
                        Messages.Message("MessageFullyHealed".Translate(args), MessageSound.Benefit);
                    }
                }
            }
        }
开发者ID:isistoy,项目名称:DevLib,代码行数:29,代码来源:Iglo_Framework.cs

示例4: InteractWithPawn

        /// <summary>
        ///     Damages the pawn.
        /// </summary>
        /// <param name="pawn">The pawn.</param>
        protected override void InteractWithPawn(Pawn pawn)
        {
            if (TriggerCount >= MaxTriggerCount)
                return;

            TriggerCount++;

            pawn.TakeDamage(new DamageInfo(TrapDef.TrapDamageDef, Mathf.CeilToInt(_damageRange.RandomInRange), this));
        }
开发者ID:RShackleton,项目名称:RimWorld-MoreTraps,代码行数:13,代码来源:Building_ArrowTrap.cs

示例5: InteractWithPawn

        /// <summary>
        ///     Damages the pawn.
        /// </summary>
        /// <param name="pawn">The pawn.</param>
        protected override void InteractWithPawn(Pawn pawn)
        {
            var bodyPartDamageInfo = new BodyPartDamageInfo(BodyPartHeight.Bottom, BodyPartDepth.Outside);

            pawn.TakeDamage(new DamageInfo(TrapDef.TrapDamageDef, Mathf.CeilToInt(_damageRange.RandomInRange), this, bodyPartDamageInfo));
        }
开发者ID:RShackleton,项目名称:RimWorld-MoreTraps,代码行数:10,代码来源:Building_PitFall.cs


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