Example #1
0
                public new void Enter(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    List <ReactiveTarget> targets = IemUtils.FindComponentsNearToLocation <ReactiveTarget>(gsm.location, 50);

                    foreach (var target in targets)
                    {
                        target.SetFlag(BaseEntity.Flags.On, false);
                    }

                    gsm.eg.EndGame();

                    double totalTime = 0;

                    foreach (TPGameLevel level in gsm.eg.gamelevels)
                    {
                        totalTime += level.LevelTime();
                    }

                    IemUI.CreateGameBanner(gsm.eg.player, "Game is complete! - your time was "
                                           + IemUtils.GetTimeFromSeconds(totalTime) + " seconds");


                    IemUI.Confirm(gsm.eg.player, "Game completed!\nreturn to the map",
                                  "Back",
                                  gsm.eg.backToTheMap);
                }
Example #2
0
                public new void Exit(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    IemUI.CreateGameBanner(gsm.eg.player, "");
                    EntitiesTakingDamage -= gsm.eg.PlayerImmortal;
                    CuiHelper.DestroyUi(gsm.eg.player, "ShowIntroOverlay");
                }
Example #3
0
                public new void Enter(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    gsm.eg.returnZone.Destroy();

                    IemUtils.MovePlayerToTeamLocation(gsm.eg.player,
                                                      gsm.eg.iemPlayer.PreviousLocation);
                    gsm.partition.Remove();
                    me.IemUtils.RestoreInventory(gsm.eg.player, gsm.eg.GetGuid());
                }
Example #4
0
                public new void Exit(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    CuiHelper.DestroyUi(gsm.eg.player, "CreateFadeoutBanner");
                    foreach (IemGameBase.IemPlayer iemPlayer in gsm.eg.Players.Values)
                    {
                        BasePlayer player = IemUtils.FindPlayerByID(iemPlayer.PlayerId);
                        IemUI.CreateGameBanner(player, "");
                    }
                }
Example #5
0
                public new void Enter(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    gsm.partition = new IemObjectPlacement.CopyPastePlacement(
                        "tp_v1_" + gsm.eg.difficultyLevel, gsm.location);

                    ResearchTable researchtable = IemUtils.FindComponentNearestToLocation <ResearchTable>(
                        gsm.location, 50);
                    Vector3 playerstart = researchtable.transform.position;

                    researchtable.Kill(BaseNetworkable.DestroyMode.None);
                    RepairBench repairbench = IemUtils.FindComponentNearestToLocation <RepairBench>(
                        gsm.location, 50);
                    Vector3 playerlook = repairbench.transform.position;

                    repairbench.Kill(BaseNetworkable.DestroyMode.None);

                    me.Puts("player start location is " + playerstart);
                    me.Puts("player look location is " + playerlook);
                    me.Puts("swutcged " + IemUtils.SwitchTypesToTarget <BaseOven>(gsm.location));

                    gsm.eg.player.inventory.Strip();

                    EntitiesTakingDamage += gsm.eg.PlayerImmortal;

                    IemUtils.MovePlayerToTeamLocation(gsm.eg.player,
                                                      playerstart);

                    Vector3    relativePos = playerstart - playerlook;
                    Quaternion rotation    = Quaternion.LookRotation(relativePos);

                    gsm.eg.player.transform.rotation = rotation;

                    IemUtils.SetMetabolismValues(gsm.eg.player);
                    IemUtils.ClearInventory(gsm.eg.player);

                    IemUI.CreateGameBanner(gsm.eg.player, "GAME LOBBY");

                    IemUtils.PlaySound(gsm.eg.player);

                    gsm.eg.returnZone = new IemUtils.ReturnZone(playerstart, gsm.eg.player);

                    IemUI.Confirm(gsm.eg.player, $"Weclome to target practice\n" +
                                  $"Knock down the targets to proceed to the next level.\n" +
                                  $"each level timer will start when you fire the first shot", "Start Shootin'",
                                  gsm.proceedAction);

                    gsm.eg.targets = IemUtils.FindComponentsNearToLocation <ReactiveTarget>(gsm.location, 50);
                    me.Puts("targets count is " + gsm.eg.targets.Count());
                }
Example #6
0
            public IemGameTargetPracticeGame(BasePlayer newPlayer) : base(newPlayer)
            {
                Name           = "Target_Practice";
                OnlyOneAtATime = true;
                Mode           = "Solo";

                gsm = new TargetPracticeStateManager(
                    TargetPracticeStateManager.Created.Instance, this);

                var newIemPlayer =
                    new IemTargetPracticePlayer(player, this);

                this.Players.Add(player.UserIDString, newIemPlayer);

                iemPlayer = newIemPlayer;
            }
Example #7
0
                public new void Exit(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    RunWeaponFired -= gsm.eg.TPWeaponFired;

                    IemUI.CreateGameBanner(gsm.eg.player, "");

                    TPGameLevel gamelevel = gsm.eg.gamelevels[gsm.eg.level];

                    EntitiesTakingDamage -= gsm.eg.PlayerImmortal;
                    EntitiesTakingDamage -= gsm.eg.ScorePlayerHit;

                    IemUI.CreateGameBanner2(gsm.eg.player, "");


                    CuiHelper.DestroyUi(gsm.eg.player, "CreateFadeoutBanner");
                    IemUtils.GameTimer.Destroy(gsm.eg.player);
                }
Example #8
0
                public new void Enter(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    gsm?.ChangeState(TargetPracticeStateManager.CleanUp.Instance);
                }
Example #9
0
                public new void Enter(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    // this is a fresh game at pregame
                    if (gsm.eg.level == -1)
                    {
                        gsm.eg.level++;
                    }
                    else
                    {
                        // level has already been started, and this is a rerun of the level
                        // reset level vals
                        if (gsm.eg.gamelevels[gsm.eg.level].Started &&
                            !gsm.eg.gamelevels[gsm.eg.level].Ended)
                        {
                            gsm.eg.gamelevels[gsm.eg.level].Reset();
                        }
                        else
                        {
                            // this is a new level
                            gsm.eg.level++;
                        }
                    }

                    // get the properties of this game level
                    TPGameLevel gamelevel = gsm.eg.gamelevels[gsm.eg.level];

                    EntitiesTakingDamage += gsm.eg.PlayerImmortal;

                    // reset the player score for this level
                    gsm.eg.iemPlayer.Score = 0;


                    IemUI.CreateGameBanner(gsm.eg.player, "Level " + (gsm.eg.level + 1) +
                                           " - targets remaining " + (gamelevel.Targets - gsm.eg.iemPlayer.Score));

                    IemUtils.GameTimer.CreateTimerPaused(gsm.eg.player, gamelevel.Timer, () =>
                    {
                        if (!gsm.eg.CheckLevelComplete())
                        {
                            IemUI.ConfirmCancel(gsm.eg.player,
                                                "Level was not completed!\nYou can play this level again, or return to the map", "Play Again", "Quit",
                                                gsm.eg.wasConfirmed,
                                                gsm.eg.wasCancelled);
                        }
                    });

                    // log the score
                    EntitiesTakingDamage += gsm.eg.ScorePlayerHit;

                    // refill magazines in weapons on belt container
                    IemUtils.RefillBeltMagazines(gsm.eg.player);

                    foreach (var target in gsm.eg.targets)
                    {
                        if (target != null)
                        {
                            target.ResetTarget();
                            var health = knockdownHealth.GetValue(target);
                            knockdownHealth.SetValue(target, 100f);
                        }
                    }

                    RunWeaponFired += gsm.eg.TPWeaponFired;
                    IemUtils.PlaySound(gsm.eg.player);
                }
Example #10
0
 public new void Enter(IemStateManager.StateManager sm)
 {
     TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;
 }