Ignore:
Timestamp:
2013-07-24 15:02:03 (8 years ago)
Author:
dezhidki
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Players/PlayerReal.cs

    r4592 r4635  
    99using Microsoft.Xna.Framework; 
    1010using CastleMaster.Units; 
     11using CastleMaster.Units.Mobs; 
     12using System.Diagnostics; 
    1113 
    1214namespace CastleMaster.Players 
     
    1416    public class PlayerReal : Player 
    1517    { 
     18        private const int SPEED_SLOW = 10; 
     19        private const int SPREED_FAST = 20; 
     20 
    1621        private bool moveWorldWithMouse = false; 
    1722        private Point oldMousePos; 
    1823        private Unit selectedUnit; 
     24        private int cameraSpeed = 10; 
     25        private List<Mob> selectedMobUnits; 
    1926 
    2027        public PlayerReal(Team team, Level level, Camera camera) 
     
    2229        { 
    2330            oldMousePos = Point.Zero; 
     31            selectedMobUnits = new List<Mob>(); 
    2432        } 
    2533 
    2634        public override void Update() 
    2735        { 
     36            cameraSpeed = InputHandler.IsKeyDown(Keys.ShiftKey) ? SPREED_FAST : SPEED_SLOW; 
     37 
     38            if (InputHandler.IsKeyDown(Keys.W)) 
     39                camera.YTop -= cameraSpeed; 
     40            if (InputHandler.IsKeyDown(Keys.S)) 
     41                camera.YTop += cameraSpeed; 
     42            if (InputHandler.IsKeyDown(Keys.A)) 
     43                camera.XLeft -= cameraSpeed; 
     44            if (InputHandler.IsKeyDown(Keys.D)) 
     45                camera.XLeft += cameraSpeed; 
     46 
    2847            if (InputHandler.HasMouseButtonBeenPressed(MouseButtons.Middle) || moveWorldWithMouse) 
    2948            { 
     
    4766            { 
    4867                Unit u = SelectUnit(Team); 
    49                 if (selectedUnit != null) 
    50                     selectedUnit.IsSelected = false; 
    51                 selectedUnit = u; 
    52                 if (selectedUnit != null) 
    53                     selectedUnit.IsSelected = true; 
     68 
     69                if (InputHandler.IsKeyDown(Keys.ControlKey) && u != null && u is Mob) 
     70                { 
     71                    if (selectedUnit != null) 
     72                    { 
     73                        selectedUnit.IsSelected = false; 
     74                        selectedUnit = null; 
     75                    } 
     76                    selectedMobUnits.Add((Mob)u); 
     77                    u.IsSelected = true; 
     78                } 
     79                else 
     80                { 
     81                    selectedMobUnits.ForEach(m => m.IsSelected = false); 
     82                    selectedMobUnits.Clear(); 
     83 
     84                    if (u != null) 
     85                    { 
     86                        if (!(u is Mob)) 
     87                            selectedUnit = u; 
     88                        else 
     89                            selectedMobUnits.Add((Mob)u); 
     90 
     91                        u.IsSelected = true; 
     92                    } 
     93                } 
    5494            } 
    5595 
     
    5797            { 
    5898                if (selectedUnit != null) 
    59                     selectedUnit.OnFunctionClick(camera.MouseWorldPos.X, camera.MouseWorldPos.Y); 
     99                    selectedUnit.OnFunctionClick(camera.MouseWorldPos.X, camera.MouseWorldPos.Y, false); 
     100                else if (selectedMobUnits.Count > 0) 
     101                    selectedMobUnits[0].OnGroupOrder(selectedMobUnits, camera.MouseWorldPos.X, camera.MouseWorldPos.Y); 
    60102            } 
    61103        } 
Note: See TracChangeset for help on using the changeset viewer.