Esempio n. 1
0
    void Start()
    {
        playerShipStartOffset = shipSpeed * cutSceneLength;

        gameSummary = GameObject.Find("Canvas").transform.Find("GameSummary").gameObject;
        gameSummary.SetActive(false);

        scoreText = GameObject.Find("Canvas").transform.Find("Score").GetComponent <Text> ();
        tm        = GameObject.Find("TerrainManager").GetComponent <TerrainManager> ();

        pc           = GameObject.Find("Player").GetComponent <PlayerController> ();
        police       = GameObject.Find("Police").GetComponent <PoliceController> ();
        cutsceneExit = GameObject.Find("Canvas").GetComponentInChildren <Animation> ();

        if (!playedCutscene)
        {
            StartCutscene();
        }
        else
        {
            scoreText.enabled = true;
        }

        // initialize high score
        if (!PlayerPrefs.HasKey("HighScore"))
        {
            PlayerPrefs.SetInt("HighScore", 0);
        }
    }
Esempio n. 2
0
        public static async void OnUnJailCommandAsync(Player sender, Player target)
        {
            if (!target.IsLoggedIn)
            {
                sender.SendClientMessage(Color.Red, Messages.PlayerNotLoggedIn);
                return;
            }

            if (target == sender)
            {
                sender.SendClientMessage(Color.Red, Messages.CommandNotAllowedOnSelf);
                return;
            }

            if (target.Account.Jailed == 0)
            {
                sender.SendClientMessage(Color.Red, "Player is not jailed.");
                return;
            }

            var targetAccount = target.Account;

            targetAccount.Jailed = 0;
            await new PlayerAccountRepository(ConnectionFactory.GetConnection).UpdateAsync(targetAccount);

            PoliceController.ReleasePlayerFromJail(target);

            target.SendClientMessage(Color.GreenYellow, $"You have been un-jailed by {AdminRanks.AdminLevelNames[sender.Account.AdminLevel]} {sender.Name}.");

            sender.SendClientMessage(Color.GreenYellow, $"You have un-jailed {{FFFF00}}{target.Name}.");
        }
Esempio n. 3
0
    public void Unpause()
    {
        if (pc == null)
        {
            pc = GameObject.Find("Player").GetComponent <PlayerController> ();
        }
        if (police == null)
        {
            police = GameObject.Find("Police").GetComponent <PoliceController> ();
        }
        if (gameSummary == null)
        {
            gameSummary = GameObject.Find("Canvas").transform.Find("GameSummary").gameObject;
        }
        gameSummary.SetActive(false);

        if (scoreText == null)
        {
            scoreText = GameObject.Find("Canvas").transform.Find("Score").GetComponent <Text> ();
        }

        // audio
        if (menuAudio.isPlaying)
        {
            menuAudio.Stop();
            gameAudio.Play();
        }

        scoreText.enabled = true;
        paused            = false;
        pc.Unpause();
        police.Unpause();
    }
        public static async void SpeedometerTimer_Tick(object sender, EventArgs e, Player player)
        {
            for (var camId = 1; camId < SpeedCameraData.SpeedCameras.Length; camId++)
            {
                if (SpeedCameraData.SpeedCameras[camId] == null)
                {
                    continue;
                }

                if (player.TimeSincePlayerCaughtSpeedingInSeconds > 0)
                {
                    player.TimeSincePlayerCaughtSpeedingInSeconds--;
                    return;
                }

                if (!player.IsInRangeOfPoint(50.0f, SpeedCameraData.SpeedCameras[camId].Position))
                {
                    continue;
                }

                if (player.Speed <= SpeedCameraData.SpeedCameras[camId].Speed)
                {
                    continue;
                }

                player.TimeSincePlayerCaughtSpeedingInSeconds = 40;
                await player.SetWantedLevelAsync(player.Account.Wanted + 1);

                player.SendClientMessage(Color.Red, "You've been caught by a speedtrap, slow down!");

                PoliceController.SendMessage(Color.GreenYellow, $"Player {{FFFF00}}{player.Name}{{00FF00}} is caught speeding, pursue and fine him.");
            }
        }
        public static async Task ClassEndMissionAsync(Player player)
        {
            switch (player.PlayerClass)
            {
            case PlayerClassType.TruckDriver:
                await TruckerController.EndMissionAsync(player);

                break;

            case PlayerClassType.BusDriver:
                BusDriverController.EndMission(player);
                break;

            case PlayerClassType.Pilot:
                PilotController.EndMission(player);
                break;

            case PlayerClassType.Police:
                PoliceController.EndMission(player);
                break;

            case PlayerClassType.Mafia:
                await MafiaController.EndMissionAsync(player);

                break;

            case PlayerClassType.Assistance:
                AssistanceController.EndMission(player);
                break;
            }
        }
Esempio n. 6
0
        private void Class_PlayerSpawned(object sender, SpawnEventArgs e)
        {
            if (!(sender is Player player))
            {
                return;
            }

            switch (player.PlayerClass)
            {
            case PlayerClassType.TruckDriver:
                player.Color = PlayerClassColor.TruckerColor;
                break;

            case PlayerClassType.BusDriver:
                player.Color = PlayerClassColor.BusDriverColor;
                break;

            case PlayerClassType.Pilot:
                player.Color = PlayerClassColor.PilotColor;
                break;

            case PlayerClassType.Police:
                player.Color = PlayerClassColor.PoliceColor;

                player.CheckTimer?.Dispose();
                player.CheckTimer       = new Timer(TimeSpan.FromSeconds(1), true);
                player.CheckTimer.Tick += (senderObject, ev) => PoliceController.PoliceCheckTimer_Tick(senderObject, ev, player);

                if (Configuration.Instance.CanPoliceHaveWeapons)
                {
                    foreach (var weapon in Configuration.PoliceWeapons)
                    {
                        player.GiveWeapon(weapon, Configuration.Instance.PoliceWeaponsAmmo);
                    }
                }
                break;

            case PlayerClassType.Mafia:
                player.Color = PlayerClassColor.MafiaColor;

                player.CheckTimer?.Dispose();
                player.CheckTimer       = new Timer(TimeSpan.FromSeconds(1), true);
                player.CheckTimer.Tick += (senderObject, ev) => MafiaController.MafiaCheckTimer_Tick(senderObject, ev, player);
                break;

            case PlayerClassType.Assistance:
                player.Color = PlayerClassColor.AssistanceColor;

                player.CheckTimer?.Dispose();
                player.CheckTimer       = new Timer(TimeSpan.FromSeconds(1), true);
                player.CheckTimer.Tick += (senderObject, ev) => AssistanceController.AssistanceCheckTimer_Tick(senderObject, ev, player);
                break;
            }
        }
Esempio n. 7
0
        public static async void OnJailCommand(Player sender, Player target, int seconds, string reason)
        {
            if (!target.IsLoggedIn)
            {
                sender.SendClientMessage(Color.Red, Messages.PlayerNotLoggedIn);
                return;
            }

            if (target.Account.AdminLevel > 0)
            {
                sender.SendClientMessage(Color.Red, "You can't use this command on admins.");
                return;
            }

            if (target == sender)
            {
                sender.SendClientMessage(Color.Red, Messages.CommandNotAllowedOnSelf);
                return;
            }

            if (target.Account.Jailed != 0)
            {
                sender.SendClientMessage(Color.Red, "Player is already jailed.");
                return;
            }

            if (seconds < 1)
            {
                sender.SendClientMessage(Color.Red, "Seconds must be higher than 1.");
                return;
            }

            await PoliceController.JailPlayerAsync(target, seconds);

            target.SendClientMessage(Color.Red, $"You have been jailed by {AdminRanks.AdminLevelNames[sender.Account.AdminLevel]} {sender.Name} for {seconds} seconds.");
            target.SendClientMessage(Color.Red, $"Reason: {reason}.");

            sender.SendClientMessage(Color.White, $"You have jailed {{FFFF00}}{target.Name}{{00FF00}} for {{FFFF00}}{seconds}{{00FF00}} seconds.");
        }
        private async void MafiaMissionLoadingTimer_Tick(object sender, EventArgs e, Player player)
        {
            switch (player.MissionStep)
            {
            case 1:
                player.MissionStep = 2;
                player.DisableCheckpoint();

                player.MissionTextDraw.Text = $"~w~Hauling ~b~{player.MissionCargo.Name}~w~ from {player.FromLocation.Name} to ~r~{player.ToLocation.Name}~w~";

                player.SetCheckpoint(player.ToLocation.Position, 7.0f);
                await player.SetWantedLevelAsync(player.Account.Wanted + 4);

                PoliceController.SendMessage(Color.GreenYellow, $"Mafia {{FFFF00}}{player.Name}{{00FF00}} is transporting illegal goods, pursue and fine him.");

                player.SendClientMessage(Color.GreenYellow, $"Deliver the {player.MissionCargo.Name} to {player.ToLocation.Name}.");
                break;

            case 2:
                BasePlayer.SendClientMessageToAll(Color.White, $"Mafia {{FF00FF}}{player.Name}{{FFFFFF}} succesfully transported {{0000FF}}{player.MissionCargo.Name}");
                BasePlayer.SendClientMessageToAll(Color.White, $"from {{00FF00}}{player.FromLocation.Name}{{FFFFFF}} to {{00FF00}}{player.ToLocation.Name}.");

                var payment = MissionsController.CalculatePayment(player.FromLocation, player.ToLocation, player.MissionCargo);
                await player.RewardAsync(payment, 2);

                player.SendClientMessage(Color.GreenYellow, $"You finished the mission and earned ${payment}.");

                var playerAccount = player.Account;
                playerAccount.MafiaJobs++;
                await new PlayerAccountRepository(ConnectionFactory.GetConnection).UpdateAsync(playerAccount);

                await EndMissionAsync(player);

                break;
            }

            player.ToggleControllable(true);
        }
Esempio n. 9
0
        private async Task SetRandomOverloadAsync(Player player)
        {
            var playerTrailerModel = player.Vehicle?.Trailer?.Model;

            if (playerTrailerModel != VehicleModelType.ArticleTrailer &&
                playerTrailerModel != VehicleModelType.ArticleTrailer2)
            {
                return;
            }

            var random = new Random();
            var chance = random.Next(100);

            if (chance > 15)
            {
                return;
            }

            player.IsOverloaded = true;
            await player.SetWantedLevelAsync(player.Account.Wanted + 2);

            PoliceController.SendMessage(Color.GreenYellow, $"Trucker {{FFFF00}}{player.Name}{{00FF00}} is overloaded, pursue and fine him.");
        }
Esempio n. 10
0
 void Awake()
 {
     me = this;
 }
Esempio n. 11
0
        public static async void OnOverLoadCommandAsync(Player sender)
        {
            if (sender.PlayerClass != PlayerClassType.TruckDriver)
            {
                sender.SendClientMessage(Color.Red, "You are not a truck driver!");
                return;
            }

            if (!sender.IsDoingMission)
            {
                sender.SendClientMessage(Color.Red, "You are not doing any mission!");
                return;
            }

            if (sender.MissionStep != 2)
            {
                sender.SendClientMessage(Color.Red, "You must load your truck first!");
                return;
            }

            if (sender.IsOverloaded)
            {
                sender.SendClientMessage(Color.Red, "You are already overloaded!");
                return;
            }

            if (!sender.IsInRangeOfPoint(25.0f, sender.FromLocation.Position))
            {
                sender.SendClientMessage(Color.Red, "You must be near the loading area!");
                return;
            }

            var playerVehicleModel        = sender.MissionVehicle?.Model;
            var playerVehicleTrailerModel = sender.MissionTrailer?.Model;
            var isValidOverload           = false;

            switch (playerVehicleModel)
            {
            case VehicleModelType.Flatbed:
            case VehicleModelType.DFT30:
                isValidOverload = true;
                break;

            case VehicleModelType.Roadtrain:
            case VehicleModelType.Tanker:
            case VehicleModelType.Linerunner:
                switch (playerVehicleTrailerModel)
                {
                case VehicleModelType.ArticleTrailer:
                case VehicleModelType.ArticleTrailer2:
                case VehicleModelType.ArticleTrailer3:
                    isValidOverload = true;
                    break;
                }

                break;
            }

            if (!isValidOverload)
            {
                return;
            }

            sender.IsOverloaded = true;
            await sender.SetWantedLevelAsync(sender.Account.Wanted + 2);

            sender.SendClientMessage(Color.Yellow, "You have overloaded your truck, watch out for the police.");
            PoliceController.SendMessage(Color.GreenYellow, $"Trucker {{FFFF00}}{sender.Name}{{00FF00}} is overloaded, pursue and fine him.");
        }