예제 #1
0
 // Token: 0x06000027 RID: 39 RVA: 0x00002B44 File Offset: 0x00000D44
 public void UseJetPack(Pawn pilot, Thing JP, IntVec3 targCell)
 {
     if (!this.JPComposMentis(pilot, JP, out string Reason))
     {
         Messages.Message(TranslatorFormattedStringExtensions.Translate("JetPack.CantDo", pilot, Reason), pilot, MessageTypeDefOf.NeutralEvent, false);
         SoundStarter.PlayOneShotOnCamera(SoundDefOf.ClickReject, null);
         return;
     }
     if (!this.FlightChecksOK(pilot, JP, out string ChecksReason))
     {
         Messages.Message(TranslatorFormattedStringExtensions.Translate("JetPack.ChecksReason", GenText.CapitalizeFirst(pilot.LabelShort), ChecksReason), pilot, MessageTypeDefOf.NeutralEvent, false);
         SoundStarter.PlayOneShotOnCamera(SoundDefOf.ClickReject, null);
         return;
     }
     if (JPUtility.ChkForDissallowed(pilot, out string DAllowReason))
     {
         Messages.Message(TranslatorFormattedStringExtensions.Translate("JetPack.DAllowReason", GenText.CapitalizeFirst(pilot.LabelShort), DAllowReason), pilot, MessageTypeDefOf.NeutralEvent, false);
         SoundStarter.PlayOneShotOnCamera(SoundDefOf.ClickReject, null);
         return;
     }
     if (!this.FlightCellCheck(pilot, targCell, this.JPFuelAmount, this.JPFuelRate, this.JPJumpRangeMin, this.JPJumpRangeMax, out string JumpReason))
     {
         Messages.Message(TranslatorFormattedStringExtensions.Translate("JetPack.JumpReason", JumpReason), pilot, MessageTypeDefOf.NeutralEvent, false);
         SoundStarter.PlayOneShotOnCamera(SoundDefOf.ClickReject, null);
         return;
     }
     if (!JPInjury.CheckForExplosion(this))
     {
         this.DoJumpJet(pilot, targCell);
         return;
     }
     JPInjury.DoJPExplosion(pilot, this.JPFuelAmount, this.JPFuelItem);
     this.JPFuelAmount = 0;
 }
예제 #2
0
        private void DoBottomButtons(Rect rect)
        {
            Rect rect2 = new Rect(rect.width / 2f - this.BottomButtonSize.x / 2f, rect.height - 55f - 17f, this.BottomButtonSize.x, this.BottomButtonSize.y);

            if (Widgets.ButtonText(rect2, "AcceptButton".Translate(), true, false, true))
            {
                if (this.TryAccept())
                {
                    SoundStarter.PlayOneShotOnCamera(SoundDefOf.Tick_High, null);
                    this.Close(false);
                }
            }
            Rect rect3 = new Rect(rect2.x - 10f - this.BottomButtonSize.x, rect2.y, this.BottomButtonSize.x, this.BottomButtonSize.y);

            if (Widgets.ButtonText(rect3, "ResetButton".Translate(), true, false, true))
            {
                SoundDefOf.Tick_Low.PlayOneShotOnCamera(null);
                this.CalculateAndRecacheTransferables();
            }
            if (this.ShowCancelButton)
            {
                Rect rect4 = new Rect(rect2.xMax + 10f, rect2.y, this.BottomButtonSize.x, this.BottomButtonSize.y);
                if (Widgets.ButtonText(rect4, "CancelButton".Translate(), true, false, true))
                {
                    this.Close(true);
                }
            }
        }
예제 #3
0
    private void StartWickSustainer()
    {
        SoundStarter.PlayOneShot(CompExplosiveNuke.PreImpact, (SoundInfo)this.parent.Position);
        SoundInfo info = SoundInfo.InWorld((TargetInfo)((Thing)this.parent), MaintenanceType.PerTick);

        this.wickSoundSustainer = SoundStarter.TrySpawnSustainer(CompExplosiveNuke.Null, info);
    }
        public override void Tick()
        {
            base.Tick();
            Burnticks--;
            Burnticks2--;
            --this.drillticksRemaining;

            if (Burnticks == 0)
            {
                skydrillerEffect = new Skydriller_PlasmaBeam(base.Map, this.Position);
                base.Map.weatherManager.eventHandler.AddEvent(skydrillerEffect);
                Burnticks = 4;
            }

            if (Burnticks2 == 0)
            {
                MoteMaker.MakeStaticMote(base.Position, base.Map, ThingDefOf.Mote_ShotFlash, 9f);
                GenExplosion.DoExplosion(base.Position, base.Map, 1, DamageDefOf.Flame, (Thing)null, PlasmaDrill, (ThingDef)null);
                Burnticks2 = 4;
            }

            if (drillticksRemaining == 0)
            {
                Messages.Message("Ind_PlasmaDrillingComplete".Translate(), MessageSound.Standard);
                GenSpawn.Spawn(ThingDef.Named("Ind_MiningHole"), this.Position, base.Map);
                SoundStarter.PlayOneShot(Building_PlasmaDrillAction.PlasmaDrillFire, new TargetInfo(base.Position, base.Map, false));
                ((Thing)this).Destroy((DestroyMode)0);
            }
        }
예제 #5
0
        // Token: 0x0600000B RID: 11 RVA: 0x000022A8 File Offset: 0x000004A8
        public static Command CampCommand(Caravan caravan)
        {
            Command_Action command_Action = new Command_Action();

            command_Action.defaultLabel = "Set-Up Camp";
            command_Action.defaultDesc  = "Set-Up Camp";
            command_Action.icon         = SetUpCampTextures.CampCommandTex;
            command_Action.action       = delegate()
            {
                SoundStarter.PlayOneShotOnCamera(SoundDefOf.Tick_High, null);
                Camp(caravan);
            };
            bool flag = false;
            List <WorldObject> allWorldObjects = Find.WorldObjects.AllWorldObjects;

            for (int i = 0; i < allWorldObjects.Count; i++)
            {
                WorldObject worldObject = allWorldObjects[i];
                bool        flag2       = worldObject.Tile == caravan.Tile && worldObject != caravan;
                if (flag2)
                {
                    flag = true;
                    break;
                }
            }
            bool flag3 = flag;

            if (flag3)
            {
                command_Action.Disable(Translator.Translate("CommandSettleFailOtherWorldObjectsHere"));
            }
            return(command_Action);
        }
예제 #6
0
        /*
         * Remove Construction Site
         */
        public static Command RemoveConstructionSite(int tile)
        {
            // TO DO : Refactor this so we find the site first, to pass it to Deleteconstructionsite directly, or even get rid of that function all together
            Command_Action command_Action = new Command_Action();

            command_Action.defaultLabel = "RoadsOfTheRimRemoveConstructionSite".Translate();
            command_Action.defaultDesc  = "RoadsOfTheRimRemoveConstructionSiteDescription".Translate();
            command_Action.icon         = ContentFinder <Texture2D> .Get("UI/Commands/RemoveConstructionSite", true);

            command_Action.action = delegate()
            {
                SoundStarter.PlayOneShotOnCamera(SoundDefOf.CancelMode, null);
                DeleteConstructionSite(tile);
            };
            // Test when the RemoveConstructionSite action should be disabled (i.e. there's no construction site here)
            bool ConstructionSiteAlreadyHere = false;

            try
            {
                ConstructionSiteAlreadyHere = Find.WorldObjects.AnyWorldObjectOfDefAt(DefDatabase <WorldObjectDef> .GetNamed("RoadConstructionSite", true), tile);
            }
            catch
            {
            }
            if (!ConstructionSiteAlreadyHere)
            {
                command_Action.Disable("RoadsOfTheRimBuildConstructionSiteNotAlreadyHere".Translate());
            }
            return(command_Action);
        }
예제 #7
0
        public virtual void StartMusic(TuneDef parmDef = null)
        {
            if (state == State.off)
            {
                state = State.on;
            }

            //Establish duration
            //Cthulhu.Utility.DebugReport("Cur Time:" + Time.time.ToString());
            duration = Time.time + currentTuneDef.durationTime;
            //Cthulhu.Utility.DebugReport(currentTuneDef.ToString() + " Fin Time:" + duration.ToString());

            //Clear old song
            this.playingSong = null;

            //Put on new song
            SoundInfo soundInfo = SoundInfo.InMap(this, MaintenanceType.None);
            SoundDef  soundDef  = currentTuneDef as SoundDef;

            if (parmDef != null)
            {
                soundDef = parmDef as SoundDef;
            }
            this.playingSong = SoundStarter.TrySpawnSustainer(soundDef, soundInfo);
        }
예제 #8
0
        public void UseShard()
        {
            SoundStarter.PlayOneShotOnCamera(SoundDefOf.Click, null);
            Job job = new Job(YautjaDefOf.RRY_Yautja_HealthShard);

            base.Wearer.jobs.TryTakeOrderedJob(job, 0);
        }
예제 #9
0
        // Token: 0x0600000C RID: 12 RVA: 0x00002204 File Offset: 0x00000404

        public void TendSelf()
        {
            SoundStarter.PlayOneShotOnCamera(SoundDefOf.Click, null);
            Job job = new Job(YautjaDefOf.RRY_Yautja_TendSelf);

            base.Wearer.jobs.TryTakeOrderedJob(job, 0);
        }
예제 #10
0
        protected override void Impact(Thing hitThing)
        {
            Map map = base.Map;

            base.Impact(hitThing);
            if (hitThing != null)
            {
                int        damageAmount     = this.def.projectile.GetDamageAmount((float)base.DamageAmount, null);
                ThingDef   equipmentDef     = this.equipmentDef;
                float      armorPenetration = this.def.projectile.GetArmorPenetration(base.ArmorPenetration, null);
                DamageInfo damageInfo       = new DamageInfo(this.def.projectile.damageDef, (float)damageAmount, armorPenetration, this.ExactRotation.eulerAngles.y, this.launcher, null, equipmentDef, 0, null);
                hitThing.TakeDamage(damageInfo);
                Pawn pawn = hitThing as Pawn;
                if (pawn != null && !pawn.Downed && Rand.Value < this.compED.chanceToProc)
                {
                    MoteMaker.ThrowMicroSparks(this.destination, base.Map);
                    hitThing.TakeDamage(new DamageInfo(DefDatabase <DamageDef> .GetNamed(this.compED.damageDef, true), (float)this.compED.damageAmount, armorPenetration, this.ExactRotation.eulerAngles.y, this.launcher, null, null, 0, null));
                    return;
                }
            }
            else
            {
                SoundStarter.PlayOneShot(SoundDefOf.BulletImpact_Ground, new TargetInfo(base.Position, map, false));
                MoteMaker.MakeStaticMote(this.ExactPosition, map, ThingDefOf.LaserMoteWorker, 0.5f);
                Projectile_HeatImpact.ThrowMicroSparksRed(this.ExactPosition, base.Map);
            }
        }
 public static bool Patch_Pawn_PreApplyDamage_Prefix(
     ref Pawn __instance,
     ref DamageInfo dinfo,
     out bool absorbed)
 {
     if (((DamageInfo) ref dinfo).get_Def() != DamageDefOf.SurgicalCut && ((DamageInfo) ref dinfo).get_Def() != DamageDefOf.ExecutionCut && ((DamageInfo) ref dinfo).get_Def() != DamageDefOf.EMP && ((DamageInfo) ref dinfo).get_Def() != DamageDefOf.Stun && __instance.health != null && ((HediffSet)((Pawn_HealthTracker)__instance.health).hediffSet).HasHediff(MFHediffDefOf.MFBastionHigh, false) && ((HediffSet)((Pawn_HealthTracker)__instance.health).hediffSet).GetFirstHediffOfDef(MFHediffDefOf.MFBastionHigh, false) is ShieldHediff firstHediffOfDef)
     {
         if (firstHediffOfDef.broken)
         {
             firstHediffOfDef.ResetBrokenCooldown();
         }
         else if (firstHediffOfDef.AbsorbDamage(dinfo))
         {
             if (firstHediffOfDef.broken)
             {
                 SoundStarter.PlayOneShot((SoundDef)SoundDefOf.EnergyShield_Broken, SoundInfo.op_Implicit(new TargetInfo(((Thing)__instance).get_Position(), ((Thing)__instance).get_Map(), false)));
                 MoteMaker.MakeStaticMote(GenThing.TrueCenter((Thing)__instance), ((Thing)__instance).get_Map(), (ThingDef)ThingDefOf.Mote_ExplosionFlash, 12f);
             }
             else
             {
                 SoundStarter.PlayOneShot((SoundDef)SoundDefOf.EnergyShield_AbsorbDamage, SoundInfo.op_Implicit(new TargetInfo(((Thing)__instance).get_Position(), ((Thing)__instance).get_Map(), false)));
                 MoteMaker.MakeStaticMote(GenThing.TrueCenter((Thing)__instance), ((Thing)__instance).get_Map(), (ThingDef)ThingDefOf.Mote_ExplosionFlash, 6f);
             }
             if (!firstHediffOfDef.broken)
             {
                 firstHediffOfDef.ResetHitCooldown();
             }
             absorbed = true;
             return(false);
         }
     }
     absorbed = false;
     return(true);
 }
예제 #12
0
        private void StartSpray()
        {
            SnowUtility.AddSnowRadial(this.OccupiedRect().RandomCell, Map, 4, -0.06f);

            spraySustainer          = SoundStarter.TrySpawnSustainer(SoundDefOf.GeyserSpray, new TargetInfo(Position, Map));
            spraySustainerStartTick = Find.TickManager.TicksGame;
        }
예제 #13
0
        // Token: 0x0600002C RID: 44 RVA: 0x000031D8 File Offset: 0x000013D8
        public void RefuelJP(Pawn pilot, Thing JP, bool Using)
        {
            if (Using)
            {
                if (this.JPComposMentis(pilot, JP, out string Reason))
                {
                    if (this.JPFuelAmount >= this.JPFuelMax)
                    {
                        Messages.Message(TranslatorFormattedStringExtensions.Translate("JetPack.FullyFueled", GenText.CapitalizeFirst(JP.Label)), pilot, MessageTypeDefOf.NeutralEvent, false);
                        SoundStarter.PlayOneShotOnCamera(SoundDefOf.ClickReject, null);
                        return;
                    }
                    JobDef JPRefuel = DefDatabase <JobDef> .GetNamed("JPRefuel", true);

                    this.FindBestJPFuel(pilot, out Thing targ);
                    if (targ != null)
                    {
                        Job job = new Job(JPRefuel, targ);
                        pilot.jobs.TryTakeOrderedJob(job, 0);
                        return;
                    }
                    Messages.Message(TranslatorFormattedStringExtensions.Translate("JetPack.NoFuelFound", GenText.CapitalizeFirst(this.JPFuelItem.label)), pilot, MessageTypeDefOf.NeutralEvent, false);
                    SoundStarter.PlayOneShotOnCamera(SoundDefOf.ClickReject, null);
                    return;
                }
                else
                {
                    Messages.Message(TranslatorFormattedStringExtensions.Translate("JetPack.CantDo", pilot, Reason), pilot, MessageTypeDefOf.NeutralEvent, false);
                    SoundStarter.PlayOneShotOnCamera(SoundDefOf.ClickReject, null);
                }
            }
        }
예제 #14
0
        public static Command_Action SetUpCampCommand(Caravan caravan)
        {
            Command_Action command_Action = new Command_Action
            {
                defaultLabel = "SetUpCamp".Translate(),
                defaultDesc  = "SetUpCampDesc".Translate(),
                icon         = SetUpCampCommandTex,
                action       = delegate()
                {
                    SoundStarter.PlayOneShotOnCamera(SoundDefOf.Tick_High, null);
                    Camp(caravan);
                }
            };

            tmpSettleFailReason.Length = 0;
            if (!TileFinder.IsValidTileForNewSettlement(caravan.Tile, tmpSettleFailReason))
            {
                command_Action.Disable(tmpSettleFailReason.ToString());
            }
            if (Find.WorldObjects.AnyWorldObjectOfDefAt(SetUpCampDefOf.AbandonedCamp, caravan.Tile))
            {
                command_Action.Disable("SetUpCampOccupied".Translate());
            }
            return(command_Action);
        }
        public void OpenCommsWith(Pawn negotiator, Faction faction)
        {
            Dialog_Negotiation dialog_Negotiation = new Dialog_Negotiation(negotiator, faction, ReinforcementDialogMakerRC.FactionDialogFor(negotiator, faction), true);

            //dialog_Negotiation.soundAmbient = RCDefsOf.AmbientRequisitionRelayRH;
            SoundStarter.PlayOneShot(RCDefsOf.PickUpRequisitionRelayRH, SoundInfo.OnCamera());
            Find.WindowStack.Add(dialog_Negotiation);
        }
예제 #16
0
        private void trainPawnDone(String def)
        {
            PawnGenerationRequest request = new PawnGenerationRequest(DefDatabase <PawnKindDef> .GetNamed(def, true), Faction.OfPlayer, PawnGenerationContext.NonPlayer, -1, false, false, false, false, true, true, 1f, false, true, true, false, false, false, false, null, null, null, null, null, null, null);
            Pawn item            = PawnGenerator.GeneratePawn(request);
            Pawn_StoryTracker ps = item.story;

            ps.childhood        = null;
            ps.adulthood        = null;
            ps.traits.allTraits = new List <Trait>();
            ps.traits.GainTrait(new Trait(DefDatabase <TraitDef> .GetNamed("ra2_MakeSoldier", true)));
            ps.traits.GainTrait(new Trait(TraitDefOf.Psychopath));


            Pawn_WorkSettings pws = item.workSettings;

            pws.DisableAll();
            Pawn_PlayerSettings pps = item.playerSettings;

            pps.hostilityResponse = HostilityResponseMode.Attack;

            NameTriple triple = NameTriple.FromString(item.kindDef.label.Replace(" ", ""));

            item.Name = triple;
            item.inventory.DestroyAll();


            YuriSoldierMakeUp.tryMakeUp(item);



            SoundStarter.PlayOneShotOnCamera(DefDatabase <SoundDef> .GetNamed(this.parent.def.defName + "_UnitReady", true));


            IntVec3 loc = CellFinder.RandomClosewalkCellNear(this.parent.Position, this.parent.Map, 3, null);

            Pawn pp;

            if (this.trainPawns[0] != "ra2_AlliedTanya")
            {
                pp = (Pawn)(GenSpawn.Spawn(item, loc, this.parent.Map, WipeMode.Vanish));
            }
            else
            {
                // bool flag = true;
                if (getAllTanya().Count > 0)
                {
                    foreach (Pawn tanya in getAllTanya())
                    {
                        tanya.Destroy(DestroyMode.Vanish);
                    }
                }
                pp = (Pawn)(GenSpawn.Spawn(getTanya(), loc, this.parent.Map, WipeMode.Vanish));
            }


            this.trainPawns.Remove(this.trainPawns[0]);
            this.ticks = 0;
        }
예제 #17
0
 internal static void ProgressHalfQuadrum(IEnumerable <CompUniversalFermenter> comps)
 {
     foreach (CompUniversalFermenter comp in comps)
     {
         comp.ProgressTicks += GenDate.TicksPerQuadrum / 2;
     }
     gooseAngle = Rand.Range(0, 360);
     SoundStarter.PlayOneShotOnCamera(UF_DefOf.UF_Honk);
 }
예제 #18
0
        public void destoryAir(Thing t)
        {
            if (t is DropPodIncoming)
            {
                List <Thing>    leftthing = new List <Thing>();
                DropPodIncoming dp        = t as DropPodIncoming;
                for (int i = dp.Contents.innerContainer.Count - 1; i >= 0; i--)
                {
                    Thing thing = dp.Contents.innerContainer[i];
                    if (thing is Pawn)
                    {
                        Pawn p = thing as Pawn;
                        p.Kill(null, null);
                        //Corpse cp = ((Corpse)ThingMaker.MakeThing(p.RaceProps.corpseDef,null));
                        //cp.InnerPawn = p;
                        //cp.GetComp<CompRottable>().RotImmediately();

                        //leftthing.Add(cp);
                        leftthing.Add(p);
                    }
                    else
                    {
                        leftthing.Add(thing);
                    }
                }



                Random rr = new Random();
                foreach (Thing tt in leftthing)
                {
                    if (!(tt is Pawn))
                    {
                        int v = rr.Next(100);
                        // Log.Warning(v+"/"+Settings.droppodCargoDropPercentage+"%");
                        if (v >= Settings.droppodCargoDropPercentage)
                        {
                            continue;
                        }
                    }


                    GenPlace.TryPlaceThing(tt, t.Position, this.Map, ThingPlaceMode.Near);


                    SoundStarter.PlayOneShot(SoundDefOf.DropPod_Open, new TargetInfo(tt));
                }
                for (int i = 0; i < 3; i++)
                {
                    Thing sl = ThingMaker.MakeThing(ThingDefOf.ChunkSlagSteel);
                    GenPlace.TryPlaceThing(sl, t.Position, this.Map, ThingPlaceMode.Near);
                }
            }

            t.Destroy();
        }
 public void FinishReload()
 {
     SoundStarter.PlayOneShot(this.parent.def.soundInteract, SoundInfo.InWorld(this.Wielder.Position, 0));
     if (this.reloaderProp.throwMote)
     {
         MoteThrower.ThrowText(this.Wielder.Position.ToVector3Shifted(), Translator.Translate("CR_ReloadedMote"), -1);
     }
     this.count      = this.reloaderProp.roundPerMag;
     this.needReload = false;
 }
        public override void Destroy(DestroyMode mode = DestroyMode.Vanish)
        {
            var position = this.Position;
            var map      = base.Map;

            base.Destroy(mode);
            SoundStarter.PlayOneShot(PlasmaDrillFire, new TargetInfo(position, map, false));
            GenSpawn.Spawn(ThingDef.Named("Ind_MiningHole"), position, map);
            Messages.Message("Ind_SkyDriller_Completed".Translate(), MessageSound.Standard);
        }
예제 #21
0
        public override void ProcessInput(Event ev)
        {
            base.ProcessInput(ev);
            SoundStarter.PlayOneShotOnCamera(SoundDefOf.Tick_Tiny, null);
            Texture2D texture2D = ContentFinder <Texture2D> .Get("UI/Leap", true);

            Find.Targeter.BeginTargeting(ForLeapDestination(), delegate(LocalTargetInfo target)
            {
                this.action(target.Cell);
            }, this.pawn, null, texture2D);
        }
예제 #22
0
        // Token: 0x0600000C RID: 12 RVA: 0x0000231C File Offset: 0x0000051C
        public override void ProcessInput(Event ev)
        {
            base.ProcessInput(ev);
            SoundStarter.PlayOneShotOnCamera(SoundDefOf.Tick_Tiny, null);
            Texture2D JPIcon = ContentFinder <Texture2D> .Get(Command_JetPack.JPIconPath, true);

            Find.Targeter.BeginTargeting(Command_JetPack.targParms, delegate(LocalTargetInfo target)
            {
                this.action(target.Cell);
            }, this.Pilot, null, JPIcon);
        }
예제 #23
0
        public override void CompTick()
        {
            base.CompTick();
            // if(pb==null) this.pb = base.parent as Building_SuperWeapon;
            this.ticktime = pb.ticks;
            this.canFire  = pb.canFire;

            if (this.ticktime == 34910)
            {
                SoundStarter.PlayOneShot(SoundDef.Named("ra2_StormRead"), this.parent);
            }
        }
예제 #24
0
        // Token: 0x0600004A RID: 74 RVA: 0x0000417C File Offset: 0x0000237C
        public override void Tick()
        {
            this.innerContainer.ThingOwnerTick(true);
            this.ticksToImpact--;
            this.ticksToHeadAche++;
            Vector3 drawLoc = base.DrawPos;

            if (this.ticksToImpact % 3 == 0)
            {
                int numMotes = Math.Min(2, this.def.skyfaller.motesPerCell);
                for (int i = 0; i < numMotes; i++)
                {
                    MoteMaker.ThrowSmoke(drawLoc, base.Map, 2f);
                }
            }
            if (this.ticksToImpact % 25 == 0 && this.JumpSound != null)
            {
                IntVec3 SoundPos = IntVec3Utility.ToIntVec3(drawLoc);
                SoundStarter.PlayOneShot(this.JumpSound, new TargetInfo(SoundPos, base.Map, false));
            }
            if (this.ticksToHeadAche == 3 && Settings.AllowFire)
            {
                this.JPIgnite(IntVec3Utility.ToIntVec3(drawLoc), base.Map);
            }
            if (this.ticksToHeadAche == 10)
            {
                this.JPHitRoof(true);
            }
            if (this.ticksToImpact == 15)
            {
                this.JPHitRoof(false);
            }
            if (!this.anticipationSoundPlayed && this.def.skyfaller.anticipationSound != null && this.ticksToImpact < this.def.skyfaller.anticipationSoundTicks)
            {
                this.anticipationSoundPlayed = true;
                SoundStarter.PlayOneShot(this.def.skyfaller.anticipationSound, new TargetInfo(base.Position, base.Map, false));
            }
            if (this.ticksToImpact == 3)
            {
                this.EjectPilot();
            }
            if (this.ticksToImpact == 0)
            {
                this.JPImpact();
                return;
            }
            if (this.ticksToImpact < 0)
            {
                Log.Error("ticksToImpact < 0. Was there an exception? Destroying skyfaller.", false);
                this.EjectPilot();
                this.Destroy(0);
            }
        }
예제 #25
0
        public void CollectTithes()
        {
            List <Building> list = Tithes.TitheUtilities.allTitheContainers;

            for (int i = 0; i < list.Count; i++)
            {
                list[i].Destroy(DestroyMode.Vanish);
            }
            SoundStarter.PlayOneShotOnCamera(SoundDefOf.Thunder_OnMap);

            Tithes.TitheUtilities.CalculateColonyTithes(this);
        }
        // Token: 0x060000FD RID: 253 RVA: 0x00009624 File Offset: 0x00007824
        protected void ImpactSomething()
        {
            bool flyOverhead = this.def.projectile.flyOverhead;

            if (flyOverhead)
            {
                RoofDef roofDef = base.Map.roofGrid.RoofAt(base.destinationInt.ToIntVec3());
                bool    flag    = roofDef != null && roofDef.isThickRoof;
                if (flag)
                {
                    SoundInfo soundInfo = SoundInfo.InMap(new TargetInfo(base.destinationInt.ToIntVec3(), base.Map, false), 0);
                    SoundStarter.PlayOneShot(this.def.projectile.soundHitThickRoof, soundInfo);
                    return;
                }
            }
            bool flag2 = this.intendedTarget != null;

            if (flag2)
            {
                Pawn pawn  = this.intendedTarget as Pawn;
                bool flag3 = pawn != null && pawn.Downed && (this.origin - this.Destination).magnitude > 5f && Rand.Value < 0.2f;
                if (flag3)
                {
                    this.Impact(null);
                }
                else
                {
                    this.Impact(this.intendedTarget);
                }
            }
            else
            {
                Thing thing = base.Map.thingGrid.ThingAt(base.destinationInt.ToIntVec3(), (ThingCategory)1);
                bool  flag4 = thing != null;
                if (flag4)
                {
                    this.Impact(thing);
                }
                else
                {
                    foreach (Thing thing2 in base.Map.thingGrid.ThingsAt(base.destinationInt.ToIntVec3()))
                    {
                        bool flag5 = thing2.def.fillPercent > 0f || thing2.def.passability > 0;
                        if (flag5)
                        {
                            this.Impact(thing2);
                            return;
                        }
                    }
                    this.Impact(null);
                }
            }
        }
예제 #27
0
        // Token: 0x04000B62 RID: 2914
        //  public Building Barracks;



        private void canTrain(CompRefuelable cr, String def, float amount)
        {
            if (cr != null && cr.Fuel >= amount)
            {
                SoundStarter.PlayOneShotOnCamera(DefDatabase <SoundDef> .GetNamed(this.parent.def.defName + "_Training", true));
                this.trainPawns.Add(def);
                cr.ConsumeFuel(amount);
            }
            else
            {
                SoundStarter.PlayOneShotOnCamera(DefDatabase <SoundDef> .GetNamed("ra2_Click", true));
            }
        }
 // Token: 0x06000022 RID: 34 RVA: 0x00002834 File Offset: 0x00000A34
 protected override void SpringSub(Pawn p)
 {
     SoundStarter.PlayOneShot(SoundDefOf.TrapSpring, new TargetInfo(base.Position, base.Map, false));
     this.armedInt = false;
     if (p != null)
     {
         this.DamagePawn(p);
     }
     if (this.autoRearm && this.canBeDesignatedRearm())
     {
         base.Map.designationManager.AddDesignation(new Designation(this, YautjaDefOf.RRY_RearmTrap));
     }
 }
예제 #29
0
        private void TryLaunchProjectile(ThingDef projectileDef, LocalTargetInfo launchTarget)
        {
            Vector3 drawPos = this.ExactPosition;
            Projectile_AbilityBase projectile_AbilityBase = (Projectile_AbilityBase)GenSpawn.Spawn(projectileDef, this.ExactPosition.ToIntVec3(), this.Map);
            //ShotReport shotReport = ShotReport.HitReportFor(this.pawn, this.verb, launchTarget);
            SoundDef expr_C8 = TorannMagicDefOf.TM_AirWoosh;

            if (expr_C8 != null)
            {
                SoundStarter.PlayOneShot(expr_C8, new TargetInfo(this.ExactPosition.ToIntVec3(), this.Map, false));
            }
            projectile_AbilityBase.Launch(this.pawn, TorannMagicDefOf.TM_PsionicBlast, drawPos, launchTarget, ProjectileHitFlags.All, null, null, null, null);
        }
예제 #30
0
 internal static void EmptyObject(IEnumerable <CompUniversalFermenter> comps)
 {
     foreach (CompUniversalFermenter comp in comps)
     {
         if (comp.Finished)
         {
             Thing product = comp.TakeOutProduct();
             GenPlace.TryPlaceThing(product, comp.parent.Position, comp.parent.Map, ThingPlaceMode.Near);
         }
     }
     gooseAngle = Rand.Range(0, 360);
     SoundStarter.PlayOneShotOnCamera(UF_DefOf.UF_Honk);
 }