コード例 #1
0
        private List <Thing> GenerateRewards(Faction alliedFaction, IncidentParms parms)
        {
            int          totalMarketValue = (int)Mathf.Clamp(StorytellerUtility.DefaultThreatPointsNow(parms.target) * 10, 1000, 3000);
            List <Thing> list             = new List <Thing>();
            ItemCollectionGenerator_Internal_Arcane itc_ia = new ItemCollectionGenerator_Internal_Arcane();

            return(itc_ia.Generate(totalMarketValue, list));
            //return ItemCollectionGeneratorDefOf.BanditCampQuestRewards.Worker.Generate(parms);
        }
コード例 #2
0
        private List <Thing> GenerateRewards(Faction alliedFaction)
        {
            int          totalMarketValue = 8000;
            List <Thing> list             = new List <Thing>();
            ItemCollectionGenerator_Internal_Arcane itc_ia = new ItemCollectionGenerator_Internal_Arcane();

            return(itc_ia.Generate(totalMarketValue, list));
            //return ItemCollectionGeneratorDefOf.BanditCampQuestRewards.Worker.Generate(parms);
        }
コード例 #3
0
        private List <Thing> GenerateRewards(Faction alliedFaction)
        {
            ItemCollectionGeneratorParams parms = default(ItemCollectionGeneratorParams);

            parms.techLevel        = new TechLevel?(alliedFaction.def.techLevel);
            parms.totalMarketValue = 8000f;
            List <Thing> list = new List <Thing>();
            ItemCollectionGenerator_Internal_Arcane itc_ia = new ItemCollectionGenerator_Internal_Arcane();

            return(itc_ia.Generate(parms, list));
            //return ItemCollectionGeneratorDefOf.BanditCampQuestRewards.Worker.Generate(parms);
        }
コード例 #4
0
        public override void PawnDied(Corpse corpse)
        {
            for (int i = 0; i < 3; i++)
            {
                MoteMaker.ThrowSmoke(corpse.DrawPos, corpse.Map, Rand.Range(.5f, 1.1f));
            }
            TM_MoteMaker.ThrowGenericMote(TorannMagicDefOf.Mote_Ghost, corpse.DrawPos, corpse.Map, 1f, .25f, 0f, .25f, 0, Rand.Range(2f, 3f), 0, 0);
            //MoteMaker.ThrowHeatGlow(corpse.Position, corpse.Map, 1f);
            List <Thing> rewards   = new List <Thing>();
            Thing        arcalleum = ThingMaker.MakeThing(TorannMagicDefOf.TM_Arcalleum, null);

            if (corpse.Faction != Faction.OfPlayer)
            {
                if (corpse.InnerPawn.def == TorannMagicDefOf.TM_SkeletonR)
                {
                    arcalleum.stackCount = Rand.Range(4, 8);
                    rewards.Add(arcalleum);
                }
                else if (corpse.InnerPawn.def == TorannMagicDefOf.TM_GiantSkeletonR)
                {
                    arcalleum.stackCount = Rand.Range(25, 60);
                    rewards.Add(arcalleum);
                }
                else if (corpse.InnerPawn.def == TorannMagicDefOf.TM_SkeletonLichR)
                {
                    arcalleum.stackCount = Rand.Range(40, 80);
                    rewards.Add(arcalleum);

                    Thing tome = ThingMaker.MakeThing(TM_Data.MageBookList().RandomElement(), null);
                    tome.stackCount = 1;
                    rewards.Add(tome);
                    ItemCollectionGenerator_Internal_Arcane icg = new ItemCollectionGenerator_Internal_Arcane();
                    List <Thing> icgThings = new List <Thing>();
                    icgThings = icg.Generate(2000, icgThings);
                    rewards.AddRange(icgThings);
                }
                for (int i = 0; i < rewards.Count; i++)
                {
                    GenPlace.TryPlaceThing(rewards[i], corpse.Position, corpse.Map, ThingPlaceMode.Near);
                }
            }
            corpse.Destroy();
        }