Esempio n. 1
0
        public override void UpdateLights(EffectFrame frame, GameState new_game_state)
        {
            if (new_game_state is GameState_GTA5)
            {
                _game_state = new_game_state;

                GameState_GTA5 newgs = (new_game_state as GameState_GTA5);

                try
                {
                    curr_state = newgs.CurrentState;
                    statecol   = newgs.StateColor;

                    have_cops         = newgs.HasCops;
                    left_siren_color  = newgs.LeftSirenColor;
                    right_siren_color = newgs.RightSirenColor;

                    if (have_cops && special_mode != newgs.Command_Data.custom_mode)
                    {
                        siren_keyframe++;
                    }

                    special_mode = newgs.Command_Data.custom_mode;
                }
                catch (Exception e)
                {
                    Global.logger.LogLine("Exception during OnNewGameState. Error: " + e, Logging_Level.Error);
                    Global.logger.LogLine(newgs.ToString(), Logging_Level.None);
                }

                UpdateLights(frame);
            }
        }
Esempio n. 2
0
        public override EffectLayer Render(IGameState state)
        {
            EffectLayer bg_layer = new EffectLayer("GTA 5 - Background");

            if (state is GameState_GTA5)
            {
                GameState_GTA5 gta5state = state as GameState_GTA5;

                Color bg_color;

                switch (gta5state.CurrentState)
                {
                case PlayerState.PlayingSP_Trevor:
                    bg_color = Properties.TrevorColor;
                    break;

                case PlayerState.PlayingSP_Franklin:
                    bg_color = Properties.FranklinColor;
                    break;

                case PlayerState.PlayingSP_Michael:
                    bg_color = Properties.MichaelColor;
                    break;

                case PlayerState.PlayingSP_Chop:
                    bg_color = Properties.ChopColor;
                    break;

                case PlayerState.PlayingMP_Mission:
                    bg_color = Properties.OnlineMissionColor;
                    break;

                case PlayerState.PlayingMP_HeistFinale:
                    bg_color = Properties.OnlineHeistFinaleColor;
                    break;

                case PlayerState.PlayingMP_Spectator:
                    bg_color = Properties.OnlineSpectatorColor;
                    break;

                case PlayerState.PlayingRace_Gold:
                    bg_color = Properties.RaceGoldColor;
                    break;

                case PlayerState.PlayingRace_Silver:
                    bg_color = Properties.RaceSilverColor;
                    break;

                case PlayerState.PlayingRace_Bronze:
                    bg_color = Properties.RaceBronzeColor;
                    break;

                default:
                    bg_color = gta5state.StateColor ?? Properties.DefaultColor;
                    break;
                }

                bg_layer.Fill(bg_color);
            }

            return(bg_layer);
        }
Esempio n. 3
0
 public override void ResetGameState()
 {
     _game_state = new GameState_GTA5();
 }
        public override EffectLayer Render(IGameState state)
        {
            EffectLayer sirens_layer = new EffectLayer("GTA 5 - Police Sirens");

            if (state is GameState_GTA5)
            {
                GameState_GTA5 gta5state = state as GameState_GTA5;

                if (gta5state.HasCops)
                {
                    if (left_siren_color != gta5state.LeftSirenColor && right_siren_color != gta5state.RightSirenColor)
                    {
                        siren_keyframe++;
                    }

                    left_siren_color  = gta5state.LeftSirenColor;
                    right_siren_color = gta5state.RightSirenColor;

                    Color lefts  = Properties.LeftSirenColor;
                    Color rights = Properties.RightSirenColor;

                    //Switch sirens
                    switch (Properties.SirenType)
                    {
                    case GTA5_PoliceEffects.Alt_Full:
                        switch (siren_keyframe % 2)
                        {
                        case 1:
                            rights = lefts;
                            break;

                        default:
                            lefts = rights;
                            break;
                        }
                        siren_keyframe = siren_keyframe % 2;

                        if (Properties.PeripheralUse)
                        {
                            sirens_layer.Set(Devices.DeviceKeys.Peripheral, lefts);
                        }
                        break;

                    case GTA5_PoliceEffects.Alt_Half:
                        switch (siren_keyframe % 2)
                        {
                        case 1:
                            rights = lefts;
                            lefts  = Color.Black;

                            if (Properties.PeripheralUse)
                            {
                                sirens_layer.Set(Devices.DeviceKeys.Peripheral, rights);
                            }
                            break;

                        default:
                            lefts  = rights;
                            rights = Color.Black;

                            if (Properties.PeripheralUse)
                            {
                                sirens_layer.Set(Devices.DeviceKeys.Peripheral, lefts);
                            }
                            break;
                        }
                        siren_keyframe = siren_keyframe % 2;
                        break;

                    case GTA5_PoliceEffects.Alt_Full_Blink:
                        switch (siren_keyframe % 4)
                        {
                        case 2:
                            rights = lefts;
                            break;

                        case 0:
                            lefts = rights;
                            break;

                        default:
                            lefts  = Color.Black;
                            rights = Color.Black;
                            break;
                        }
                        siren_keyframe = siren_keyframe % 4;

                        if (Properties.PeripheralUse)
                        {
                            sirens_layer.Set(Devices.DeviceKeys.Peripheral, lefts);
                        }
                        break;

                    case GTA5_PoliceEffects.Alt_Half_Blink:
                        switch (siren_keyframe % 8)
                        {
                        case 6:
                            rights = lefts;
                            lefts  = Color.Black;

                            if (Properties.PeripheralUse)
                            {
                                sirens_layer.Set(Devices.DeviceKeys.Peripheral, rights);
                            }
                            break;

                        case 4:
                            rights = lefts;
                            lefts  = Color.Black;

                            if (Properties.PeripheralUse)
                            {
                                sirens_layer.Set(Devices.DeviceKeys.Peripheral, rights);
                            }
                            break;

                        case 2:
                            lefts  = rights;
                            rights = Color.Black;

                            if (Properties.PeripheralUse)
                            {
                                sirens_layer.Set(Devices.DeviceKeys.Peripheral, lefts);
                            }
                            break;

                        case 0:
                            lefts  = rights;
                            rights = Color.Black;

                            if (Properties.PeripheralUse)
                            {
                                sirens_layer.Set(Devices.DeviceKeys.Peripheral, lefts);
                            }
                            break;

                        default:
                            rights = Color.Black;
                            lefts  = Color.Black;

                            if (Properties.PeripheralUse)
                            {
                                sirens_layer.Set(Devices.DeviceKeys.Peripheral, lefts);
                            }
                            break;
                        }
                        siren_keyframe = siren_keyframe % 8;
                        break;

                    default:
                        switch (siren_keyframe % 2)
                        {
                        case 1:
                            Color tempc = rights;
                            rights = lefts;
                            lefts  = tempc;
                            break;

                        default:
                            break;
                        }
                        siren_keyframe = siren_keyframe % 2;

                        if (Properties.PeripheralUse)
                        {
                            sirens_layer.Set(Devices.DeviceKeys.Peripheral, lefts);
                        }
                        break;
                    }

                    sirens_layer.Set(Properties.LeftSirenSequence, lefts);
                    sirens_layer.Set(Properties.RightSirenSequence, rights);
                }
            }

            return(sirens_layer);
        }