• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Pawn类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: CurrentStateInternal

 protected override ThoughtState CurrentStateInternal( Pawn p )
 {
     return(
         ( p.IsPrisonerOfColony )&&
         ( !p.IsSlaveOfColony() )
     );
 }
开发者ID:ForsakenShell,项目名称:Es-Small-Mods,代码行数:7,代码来源:ThoughtWorker_Imprisoned.cs


示例2: PawnDestroyed

 public static void PawnDestroyed(Pawn pawn)
 {
     if( OnPawnDestroyed != null )
     {
         OnPawnDestroyed(pawn);
     }
 }
开发者ID:frilla,项目名称:ginasmtest,代码行数:7,代码来源:GameEventManager.cs


示例3: JobOnThing

        public override Job JobOnThing( Pawn pawn, Thing t )
        {
            if( !pawn.CanReserveAndReach( ( TargetInfo )t.Position, PathEndMode.Touch, DangerUtility.NormalMaxDanger( pawn ), 1 ) )
            {
                return (Job) null;
            }

            var hopperSgp = t as ISlotGroupParent;
            if( hopperSgp == null )
            {
                return (Job) null;
            }

            var resource = HopperGetCurrentResource( t.Position, hopperSgp );
            if(
                ( resource == null )||
                ( resource.stackCount <= ( resource.def.stackLimit / 2 ) )
            )
            {
                return WorkGiver_FillHopper.HopperFillJob( pawn, hopperSgp, resource );
            }

            JobFailReason.Is( "AlreadyFilledLower".Translate() );
            return (Job) null;
        }
开发者ID:Kiggerbare,项目名称:CommunityCoreLibrary,代码行数:25,代码来源:WorkGiver_FillHopper.cs


示例4: AttackStateEnd

 public static void AttackStateEnd(Pawn pawn)
 {
     if( OnAttackStateEnd != null )
     {
         OnAttackStateEnd(pawn);
     }
 }
开发者ID:frilla,项目名称:ginasmtest,代码行数:7,代码来源:GameEventManager.cs


示例5: CurrentEnemyUnset

 public static void CurrentEnemyUnset(Pawn pawn)
 {
     if( OnCurrentEnemyUnset != null )
     {
         OnCurrentEnemyUnset(pawn);
     }
 }
开发者ID:frilla,项目名称:ginasmtest,代码行数:7,代码来源:GameEventManager.cs


示例6: FindCryptosleepCasketFor

        // logic for accepting pawn by bodysize
        // RimWorld.Building_CryptosleepCasket
        public static new Building_CryptosleepCasket FindCryptosleepCasketFor(Pawn p, Pawn traveler)
        {
            try {
                IEnumerable<ThingDef> enumerable = from def in DefDatabase<ThingDef>.AllDefs
                                                   where typeof(Fluffy.Building_CryptosleepCasket).IsAssignableFrom(def.thingClass)
                                                   select def;

                foreach (ThingDef current in enumerable)
                {
                    Predicate<Thing> validator = (Thing x) => ((Building_CryptosleepCasket)x).GetContainer().Count == 0 && ((Building_CryptosleepCasket)x).TryGetComp<CompAnimalCrypto>().props.maxSizeAllowance >= traveler.BodySize;
                    Building_CryptosleepCasket building_CryptosleepCasket = (Building_CryptosleepCasket)GenClosest.ClosestThingReachable(p.Position, ThingRequest.ForDef(current), PathEndMode.InteractionCell, TraverseParms.For(traveler, Danger.Deadly, TraverseMode.ByPawn, false), 9999f, validator, null, -1, false);

                    if (building_CryptosleepCasket != null)
                    {
                        return building_CryptosleepCasket;
                    }
                }
                return null;
            }
            finally
            {
            #if DEBUG
                Log.Message("Something odd happened.");
            #endif
            }
        }
开发者ID:FluffierThanThou,项目名称:RW_NoColonistLeftBehind,代码行数:28,代码来源:Ship_CryptosleepCasket.cs


示例7: ModifycaravanGroup

        // disable initial readyness for trade and remove all but one muffalo, transferring all goods there
        public void ModifycaravanGroup(ref List<Pawn> pawns)
        {
            var muffaloChosen = false;
            var firstMuffalo = new Pawn();
            var removeList = new List<Pawn>();
            foreach (var pawn in pawns)
            {
                // disable initial readyness to trade
                pawn.mindState.wantsToTradeWithColony = false;

                // transfer all items from other muffaloes to the main one
                if (pawn.kindDef == PawnKindDef.Named("PackMuffalo"))
                {
                    if (!muffaloChosen)
                    {
                        firstMuffalo = pawn;
                        muffaloChosen = true;
                    }
                    else
                    {
                        for (var i = 0; i < pawn.inventory.container.Count; i++)
                        {
                            firstMuffalo.inventory.container.TryAdd(pawn.inventory.container[i]);
                        }
                        pawn.Destroy();
                        removeList.Add(pawn);
                    }
                }
            }
            pawns = new List<Pawn>(pawns.Except(removeList));
        }
开发者ID:RWA-Team,项目名称:RimworldAscension,代码行数:32,代码来源:RA_IncidentWorker_TraderCaravanArrival.cs


示例8: ActualUse

 public override bool ActualUse(Pawn target)
 {
     foreach (AmmoBoxPicker abp in ammoList) {
         target.GetComponent<InventoryManager> ().AddAmmo (abp.ammo, abp.amount);
     }
     return base.ActualUse(target);
 }
开发者ID:kostya05,项目名称:TPS-Proto-Unity,代码行数:7,代码来源:AmmoPicker.cs


示例9: FindMADFor

        public static Building_MAD FindMADFor(Pawn sleeper, Pawn traveler, bool sleeperWillBePrisoner, bool checkSocialProperness, bool forceCheckMedBed = false)
        {
            Predicate<Thing> MADValidator = delegate(Thing t)
            {
                if (!traveler.CanReserveAndReach(t, PathEndMode.OnCell, Danger.Some, 1))
                {
                    return false;
                }

                Building_MAD Building_MAD3 = (Building_MAD)t;

                if (Building_MAD3.HasAnyContents)
                {
                    return false;
                }
                else
                {
                    if (Building_MAD3.Faction != traveler.Faction)
                    {
                        return false;
                    }
                }
                return (!Building_MAD3.IsForbidden(traveler) && !Building_MAD3.IsBurning());
            };
            Predicate<Thing> validator = (Thing b) => MADValidator(b);

            Building_MAD building_MAD = (Building_MAD)GenClosest.ClosestThingReachable(sleeper.Position, ThingRequest.ForDef(DefDatabase<ThingDef>.GetNamed("MindAlteringDevice")), PathEndMode.OnCell, TraverseParms.For(traveler, Danger.Deadly, TraverseMode.ByPawn, false), 9999f, validator, null, -1, false);

            if (building_MAD != null)
            {
                return building_MAD;
            }

            return null;
        }
开发者ID:scyde,项目名称:Hardcore-SK,代码行数:35,代码来源:MadUtility.cs


示例10: BlocksPawn

 public override bool BlocksPawn( Pawn p )
 {
     if( isOpen )
         return false;
     else
         return !WillOpenFor(p);
 }
开发者ID:raimis001,项目名称:raWorld,代码行数:7,代码来源:Building_Door.cs


示例11: JobOnThing

 public override Job JobOnThing(Pawn pawn, Thing t)
 {
     Building_RepairStation rps = ListerDroids.ClosestRepairStationFor(pawn,t);
     Job job = new Job(ReactivateDroidJobDef, t, rps);
     job.maxNumToCarry = 1;
     return job;
 }
开发者ID:ProfoundDarkness,项目名称:MD2-Source,代码行数:7,代码来源:WorkGiver_ReactivateDroid.cs


示例12: AvailableTargets

 // search things throught designations is faster than searching designations through all things
 public static List<TargetInfo> AvailableTargets(Pawn pawn)
 {
     return Find.ListerThings.AllThings.FindAll(thing => thing is Frame)
         .Where(thing => thing.Faction == pawn.Faction && GenConstruct.CanConstruct(thing, pawn) &&
                         (thing as Frame).MaterialsNeeded().Count == 0 &&
                         pawn.CanReserveAndReach(thing, PathEndMode.Touch, pawn.NormalMaxDanger())).Select(thing => new TargetInfo(thing)).ToList();
 }
开发者ID:RWA-Team,项目名称:RimworldAscension,代码行数:8,代码来源:WorkGiver_ConstructFinishFrames.cs


示例13: HasJobOnThing

		public override bool HasJobOnThing(Pawn pawn, Thing t)
		{
            if ((t is Building_AquacultureBasin) == false)
            {
                return false;
            }
            Building_AquacultureBasin aquacultureBasin = t as Building_AquacultureBasin;

            if (pawn.Dead
                || pawn.Downed
                || pawn.IsBurning())
            {
                return false;
            }
            if (pawn.CanReserveAndReach(aquacultureBasin, this.PathEndMode, Danger.Some) == false)
            {
                return false;
            }

            if (aquacultureBasin.breedingIsFinished)
            {
                return true;
            }
            return false;
		}
开发者ID:Rikiki123456789,项目名称:Rimworld,代码行数:25,代码来源:WorkGiver_AquaponicBasin.cs


示例14: NonScanJob

 public override Job NonScanJob(Pawn pawn)
 {
     if (ToolsForHaulUtility.TryGetBackpack(pawn) != null)
         return ToolsForHaulUtility.HaulWithTools(pawn);
     JobFailReason.Is(NoBackpack);
     return (Job)null;
 }
开发者ID:BBream,项目名称:ToolsForHaul,代码行数:7,代码来源:WorkGiver_HaulWithBackpack.cs


示例15: OnInteract

 /**
  * Event: Interact
  */
 public void OnInteract(Pawn pawn = null)
 {
     if(this.conversation.Value != null)
     {
         ConversationManager.StartConversation(this.conversation.Value);
     }
 }
开发者ID:Putaitu,项目名称:unity-boilerplate,代码行数:10,代码来源:Character.cs


示例16: JobOnThing

 public override Job JobOnThing( Pawn pawn, Thing t )
 {
     var warden = pawn;
     var slave = t as Pawn;
     if(
         ( slave == null )||
         ( slave.guest == null )||
         ( slave.guest.interactionMode != Data.PIM.FreeSlave )||
         ( slave.Downed )||
         ( !slave.Awake() )||
         ( !warden.CanReserveAndReach(
             slave,
             PathEndMode.ClosestTouch,
             warden.NormalMaxDanger(),
             1 )
         )
     )
     {
         return null;
     }
     var collar = slave.WornCollar();
     if( collar == null )
     {   // Slave isn't wearing a collar, wut?
         return null;
     }
     IntVec3 result;
     if( !RCellFinder.TryFindPrisonerReleaseCell( slave, warden, out result ) )
     {
         return null;
     }
     var job = new Job( Data.JobDefOf.FreeSlave, slave, collar, result );
     job.maxNumToCarry = 1;
     return job;
 }
开发者ID:ForsakenShell,项目名称:Es-Small-Mods,代码行数:34,代码来源:WorkGiver_Warden_FreeSlave.cs


示例17: SipWater

        public static Toil SipWater(Pawn drinker, Need_Water pawnNeed, CompWaterContainer waterContainer, bool wornByActor)
        {
            var toil = new Toil();
            toil.defaultCompleteMode = ToilCompleteMode.Delay;
            toil.defaultDuration = sipTicks;
            toil.initAction = delegate
            {
                bool fromThing = toil.actor.jobs.curJob.GetTarget(TargetIndex.A).HasThing;
                if (fromThing)
                {
                    toil.FailOnForbidden(TargetIndex.A);
                    if (!wornByActor)
                    {
                        toil.FailOnDespawned(TargetIndex.A);
                    }
                }

                float wantDrink = Math.Min(pawnNeed.HydrationWantedLitres, sipLitres);
                float didDrink = pawnNeed.DrinkFrom(waterContainer, wantDrink);
            };
            toil.FailOn(() => waterContainer.IsEmpty);

            // TODO: toil.WithEffect();
            toil.WithSustainer(delegate
            {
                if (drinker.RaceProps.Humanlike)
                {
                    return DefDatabase<SoundDef>.GetNamed(drinkSoundName);
                }
                return null;
            });
            return toil;
        }
开发者ID:achan1989,项目名称:Dehydration,代码行数:33,代码来源:Toils_Water.cs


示例18: TryGiveTerminalJob

        protected override Job TryGiveTerminalJob(Pawn pawn)
        {
            Pawn mindStateTarget = pawn.mindState.enemyTarget as Pawn;
            if (mindStateTarget == null)
            {
                return null;
            }

            // Check if target is still valid
            if (mindStateTarget.Destroyed || mindStateTarget.Downed ||
                Find.TickManager.TicksGame - pawn.mindState.lastEngageTargetTick > EnemyForgetTime ||
                (pawn.Position - mindStateTarget.Position).LengthHorizontalSquared > (MaxSearchDistance * MaxSearchDistance) ||
                !GenSight.LineOfSight(pawn.Position, mindStateTarget.Position, false))
            {
                pawn.mindState.enemyTarget = null;
                return null;
            }

            if (pawn.story != null && pawn.story.WorkTagIsDisabled(WorkTags.Violent))
            {
                return null;
            }
            Job job = new Job(JobDefOf.AttackMelee, mindStateTarget)
            {
                maxNumMeleeAttacks = 1,
                expiryInterval = Rand.Range(EnemyForgetTime, MaxMeleeChaseTicksMax)
            };
            return job;
        }
开发者ID:skyarkhangel,项目名称:Enviro-AI,代码行数:29,代码来源:JobGiver_AgressiveAttack.cs


示例19: HasJobOnThing

 public override bool HasJobOnThing(Pawn pawn, Thing t)
 {
     Fire fire = t as Fire;
     if (fire == null)
     {
         return false;
     }
     Area outpostArea = OG_Util.FindOutpostArea();
     Pawn pawn2 = fire.parent as Pawn;
     if (pawn2 != null)
     {
         if (pawn2 == pawn)
         {
             return false;
         }
         if ((pawn2.Faction == pawn.Faction || pawn2.HostFaction == pawn.Faction || pawn2.HostFaction == pawn.HostFaction)
             && ((outpostArea == null) || (outpostArea.ActiveCells.Contains(t.Position) == false))
             && IntVec3Utility.ManhattanDistanceFlat(pawn.Position, pawn2.Position) > 15)
         {
             return false;
         }
     }
     else if ((outpostArea == null)
         || (outpostArea.ActiveCells.Contains(t.Position) == false))
     {
         return false;
     }
     return ((pawn.Position - fire.Position).LengthHorizontalSquared <= 225f || pawn.CanReserve(fire, 1)) && !WorkGiver_FightFiresOutpost.FireIsBeingHandled(fire, pawn);
 }
开发者ID:Rikiki123456789,项目名称:Rimworld,代码行数:29,代码来源:WorkGiver_FightFiresOutpost.cs


示例20: FindClosestCorpseFor

 public static Corpse FindClosestCorpseFor(Predicate<Thing> pred, Pawn getter)
 {
     Predicate<Thing> predicate1 = (Thing c) => !c.IsForbidden(Faction.OfColony) && getter.AwareOf(c) && getter.CanReserve(c);
     Predicate<Thing> predicate = (Thing t) => pred(t) && predicate1(t);
     ThingRequest thingReq = ThingRequest.ForGroup(ThingRequestGroup.Corpse);
     return (Corpse)GenClosest.ClosestThingReachable(getter.Position, thingReq, PathEndMode.ClosestTouch, TraverseParms.For(getter), 9999f, predicate, null);
 }
开发者ID:Leucetius,项目名称:MD2-Source,代码行数:7,代码来源:CorpseFinderUtility.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Payload类代码示例发布时间:2022-05-24
下一篇:
C# PatternInterface类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap