Ejemplo n.º 1
0
        public override EffectLayer Render(IGameState state)
        {
            EffectLayer keys_layer = new EffectLayer("Resident Evil 2 - Rank");

            if (state is GameState_ResidentEvil2)
            {
                GameState_ResidentEvil2 re2state = state as GameState_ResidentEvil2;

                if (re2state.Player.Status != Player_ResidentEvil2.PlayerStatus.OffGame && re2state.Player.Rank != 0)
                {
                    keys_layer.Set(Properties.Sequence.keys[re2state.Player.Rank - 1], Color.White);
                }
            }
            return(keys_layer);
        }
        public override EffectLayer Render(IGameState state)
        {
            EffectLayer bg_layer = new EffectLayer("Resident Evil 2 - Health");

            if (state is GameState_ResidentEvil2)
            {
                if (Properties.DisplayType == ResidentEvil2HealthLayerHandlerProperties.HealthDisplayType.Static)
                {
                    GameState_ResidentEvil2 re2state = state as GameState_ResidentEvil2;

                    switch (re2state.Player.Status)
                    {
                    case Player_ResidentEvil2.PlayerStatus.Fine:
                        bg_layer.Fill(Color.Green);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.LiteFine:
                        bg_layer.Fill(Color.YellowGreen);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.Caution:
                        bg_layer.Fill(Color.Gold);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.Danger:
                        bg_layer.Fill(Color.Red);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.Dead:
                        bg_layer.Fill(Color.DarkGray);
                        break;

                    default:
                        bg_layer.Fill(Color.DarkSlateBlue);
                        break;
                    }

                    return(bg_layer);
                }
                else if (Properties.DisplayType == ResidentEvil2HealthLayerHandlerProperties.HealthDisplayType.Scanning)
                {
                    previoustime = currenttime;
                    currenttime  = Utils.Time.GetMillisecondsSinceEpoch();

                    GameState_ResidentEvil2 re2state = state as GameState_ResidentEvil2;

                    switch (re2state.Player.Status)
                    {
                    case Player_ResidentEvil2.PlayerStatus.Fine:
                        bg_layer.Fill(Color.FromArgb(8, Color.Green.R, Color.Green.G, Color.Green.B));
                        heartbeat_animationTime = fullAnimTimes[0];
                        mixFine.Draw(bg_layer.GetGraphics(), heartbeat_keyframe);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.LiteFine:
                        bg_layer.Fill(Color.FromArgb(8, Color.YellowGreen.R, Color.YellowGreen.G, Color.YellowGreen.B));
                        heartbeat_animationTime = fullAnimTimes[0];
                        mixLiteFine.Draw(bg_layer.GetGraphics(), heartbeat_keyframe);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.Caution:
                        bg_layer.Fill(Color.FromArgb(8, Color.Gold.R, Color.Gold.G, Color.Gold.B));
                        heartbeat_animationTime = fullAnimTimes[1];
                        mixCaution.Draw(bg_layer.GetGraphics(), heartbeat_keyframe);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.Danger:
                        bg_layer.Fill(Color.FromArgb(8, Color.Red.R, Color.Red.G, Color.Red.B));
                        heartbeat_animationTime = fullAnimTimes[2];
                        mixDanger.Draw(bg_layer.GetGraphics(), heartbeat_keyframe);
                        break;

                    case Player_ResidentEvil2.PlayerStatus.Dead:
                        bg_layer.Fill(Color.DarkGray);
                        break;

                    default:
                        bg_layer.Fill(Color.DarkSlateBlue);
                        break;
                    }

                    heartbeat_keyframe += (currenttime - previoustime) / 1000.0f;

                    if (heartbeat_keyframe >= heartbeat_animationTime)
                    {
                        heartbeat_keyframe = 0;
                    }

                    return(bg_layer);
                }
                else
                {
                    return(bg_layer);
                }
            }
            else
            {
                return(bg_layer);
            }
        }