예제 #1
0
        public bool DeselectUnit(UnitSelector unitSelector)
        {
            if (unitSelector.Selected)
            {
                unitSelector.Deselect();
                //RemoveUnit is called by the event in selector
                //RemoveUnit(unitSelector);
                return(true);
            }

            return(false);
        }
예제 #2
0
    public void Deselect()
    {
        TileColouringTool.UncolourAllTiles();
        if (GameStateManager.Instance.IsCurrentPlayerAI() == false)
        {
            PlaySelectionSound();
        }
        PathCreator.Instance.ClearPath();
        UnitSelector toolUnitSelector = new UnitSelector();

        toolUnitSelector.DeselectUnit();
        SelectedUnit = null;
    }
예제 #3
0
파일: Game.cs 프로젝트: vlandemart/OpenAW3D
    // Use this for initialization
    void Start()
    {
        Selector = GameObject.Find("Selector").GetComponent <UnitSelector>();
        Level    = GameObject.Find("Level").GetComponent <Level>();
        HUD      = GameObject.Find("GUI").GetComponent <HeadsUpDisplay>();
        Camera   = GameObject.Find("Main Camera").GetComponent <Camera>();

        Units     = GameObject.Find("Units").transform;
        Buildings = GameObject.Find("Buildings").transform;

        Teams[0].TeamNo = 1;
        Teams[1].TeamNo = 2;
    }
예제 #4
0
        public bool MoveToFormation(UnitSelector unit)
        {
            bool executed = false;

            while (!executed &&
                   spiralPositions.MoveNext() &&
                   spiralPositions.ContainingSquareSize < maxSize &&
                   nodes.TryGetValue(map.GetTileByMapLocation(spiralPositions.Current), out IBuildingNode buildingNode))
            {
                executed = unit.Order(new MoveOrder(buildingNode));
            }

            return(executed);
        }
예제 #5
0
파일: Chicken.cs 프로젝트: MK4H/MHUrho
        void RegisterEvents(WorldWalker walker, Shooter shooter, UnitSelector selector)
        {
            walker.MovementStarted  += OnMovementStarted;
            walker.MovementFinished += OnMovementFinished;
            walker.MovementFailed   += OnMovementFailed;
            walker.MovementCanceled += OnMovementCanceled;



            shooter.BeforeShotFired    += BeforeShotFired;
            shooter.TargetAutoAcquired += OnTargetAutoAcquired;
            shooter.TargetDestroyed    += OnTargetDestroyed;

            selector.UnitSelected += OnUnitSelected;
        }
예제 #6
0
    public void OnUnitListReceived(List <PlayerUnit> playerUnits)
    {
        MaxSquadCost = ClientGameManager.Instance.MyPlayer.maxSquadCost;

        gameObject.SetActive(true);

        foreach (PlayerUnit playerUnit in playerUnits)
        {
            UnitSelector unitSelector = Instantiate <GameObject>(unitSelectorPrefab.gameObject, unitListContainer).GetComponent <UnitSelector>();
            unitSelector.SquadMenuController = this;
            unitSelector.PlayerUnit          = playerUnit;
            allUnitSelectors.Add(unitSelector);
        }

        UpdateSquadCost(0);
    }
예제 #7
0
        void RemoveUnit(UnitSelector unitSelector)
        {
            var info = selected[unitSelector.Unit.UnitType];

            info.UnitSelectors.Remove(unitSelector);
            if (info.Count == 0)
            {
                info.Button.Visible = false;
            }
            else
            {
                DisplayCount(info.Button, info.Count);
            }

            unitSelector.UnitDeselected -= RemoveUnit;
        }
예제 #8
0
    private void CloseMenu()
    {
        gameObject.SetActive(false);

        UpdateSquadCost();

        foreach (WeaponOption weaponOption in weaponContainer.GetComponentsInChildren <WeaponOption>())
        {
            Destroy(weaponOption.gameObject);
        }
        foreach (EquipmentOption equipmentOption in equipmentContainer.GetComponentsInChildren <EquipmentOption>())
        {
            Destroy(equipmentOption.gameObject);
        }

        UnitSelector = null;
    }
예제 #9
0
파일: Game.cs 프로젝트: burtybob/OpenAW3D
    // Use this for initialization
    void Start()
    {
        Selector = GameObject.Find("Selector").GetComponent <UnitSelector>();
        Level    = GameObject.Find("Level").GetComponent <Level>();
        HUD      = GameObject.Find("GUI").GetComponent <HeadsUpDisplay>();
        Camera   = GameObject.Find("Main Camera").GetComponent <Camera>();

        Units     = GameObject.Find("Units").transform;
        Buildings = GameObject.Find("Buildings").transform;

        AudioClip ac = Resources.Load <AudioClip>("Audio/Music/01 Jake's Theme");

        Camera.GetComponent <AudioSource>().clip = ac;
        Camera.GetComponent <AudioSource>().Play();

        Teams[0].TeamNo = 1;
        Teams[1].TeamNo = 2;
    }
예제 #10
0
파일: Chicken.cs 프로젝트: MK4H/MHUrho
        public static Chicken CreateNew(ILevelManager level, IUnit unit, ChickenType type)
        {
            Chicken newChicken = new Chicken(level, unit, type);

            newChicken.animationController = unit.CreateComponent <AnimationController>();
            newChicken.Walker  = WorldWalker.CreateNew(newChicken, level);
            newChicken.Shooter = Shooter.CreateNew(newChicken, level, type.ProjectileType, new Vector3(0, 0.7f, -0.7f), 20);
            newChicken.Shooter.SearchForTarget   = true;
            newChicken.Shooter.TargetSearchDelay = 2;
            newChicken.healthBar = new HealthBarControl(level, unit, 100, new Vector3(0, 15, 0), new Vector2(0.5f, 0.1f), true);

            var selector = UnitSelector.CreateNew(newChicken, level);

            MovingRangeTarget.CreateNew(newChicken, level, new Vector3(0, 0.5f, 0));

            newChicken.RegisterEvents(newChicken.Walker, newChicken.Shooter, selector);

            return(newChicken);
        }
예제 #11
0
 private void Awake()
 {
     instance = this;
     enemies  = new List <Enemy>();
     //storage = new PersistantStorage();
     buildIndex = SceneManager.GetActiveScene().buildIndex;
     if (storage == null)
     {
         storage = FindObjectOfType <PersistantStorage>();
     }
     if (scoreController == null)
     {
         scoreController = FindObjectOfType <ScoreController>();
     }
     if (unitSelector == null)
     {
         unitSelector = FindObjectOfType <UnitSelector>();
     }
 }
예제 #12
0
        public static Wolf CreateNew(ILevelManager level, IUnit unit, WolfType myType)
        {
            Wolf wolf = new Wolf(level, unit, myType);

            wolf.animationController = CreateAnimationController(unit);
            wolf.walker   = WorldWalker.CreateNew(wolf, level);
            wolf.attacker = MovingMeeleAttacker.CreateNew(wolf,
                                                          level,
                                                          true,
                                                          new IntVector2(20, 20),
                                                          1,
                                                          5,
                                                          0.5f);
            wolf.healthBar = new HealthBarControl(level, unit, 100, new Vector3(0, 0.7f, 0), new Vector2(0.5f, 0.1f), true);
            UnitSelector.CreateNew(wolf, level);
            MovingRangeTarget.CreateNew(wolf, level, targetOffset);
            unit.AlwaysVertical = false;
            wolf.RegisterEvents();
            return(wolf);
        }
예제 #13
0
 void CheckSelectionBox()
 {
     if (team == 1)
     {
         if (GetComponentInChildren <Renderer> ().isVisible&& Input.GetMouseButtonUp(0) && player.GetSelector().selecting&& Input.mousePosition.y > player.GetSelector().mouseYLowerBound)
         {
             Vector3 camPos = Camera.main.WorldToScreenPoint(transform.position);
             camPos.y = UnitSelector.InvertMouseY(camPos.y);
             bool s;
             if (player.GetSelector().selection.width > 0 && player.GetSelector().selection.height > 0)
             {
                 s = player.GetSelector().selection.Contains(camPos);
             }
             else
             {
                 s = new Rect(Input.mousePosition.x, UnitSelector.InvertMouseY(Input.mousePosition.y), -player.GetSelector().selection.width, -player.GetSelector().selection.height).Contains(camPos);
             }
             SetSelected(s);
         }
     }
 }
예제 #14
0
        public bool MoveToFormation(UnitSelector unit)
        {
            if (failedTypes.Contains(unit.Unit.UnitType))
            {
                return(false);
            }

            INode node;

            if ((node = PeekNextNode()) == null)
            {
                return(false);
            }

            if (unit.Order(new MoveOrder(node)))
            {
                DequeNextNode(node);
                return(true);
            }

            failedTypes.Add(unit.Unit.UnitType);
            return(false);
        }
예제 #15
0
 private void Start()
 {
     _unitSelector = FindObjectOfType <UnitSelector>();
 }
예제 #16
0
 public void SetUnitSelector(UnitSelector _selector)
 {
     selector = _selector;
 }
예제 #17
0
    public void SelectAUnit(UnitScript unit, bool changeCamera)
    {
        if (changeCamera)
        {
            FindObjectOfType <CameraController>().SetCamToU(unit);
        }
        PathCreator.Instance.ClearPath();
        UnitSelector toolUnitSelector = new UnitSelector();

        if (SelectedUnit != null)
        {
            toolUnitSelector.DeselectUnit();
        }
        else if (GameStateManager.Instance.IsCurrentPlayerAI() == false)
        {
            PlaySelectionSound();
        }
        toolUnitSelector.SelectUnit(unit);
        SelectedUnit = unit;
        UnitMovement unitMovement = SelectedUnit.GetComponent <UnitMovement>();

        if (TurnManager.Instance.CurrentPhase == TurnPhases.Movement && MovementQuestions.Instance.CanUnitMoveAtAll(unitMovement))
        {
            if (unitMovement is UnitFlight)
            {
                (unitMovement as UnitFlight).ColourPossibleDestinations();
            }
            else
            {
                switch (GameStateManager.Instance.MatchType)
                {
                case MatchTypes.Online:
                    if (Player.Players[TurnManager.Instance.PlayerToMove].Type == PlayerType.Local)
                    {
                        ColourForSelectedUnit();
                    }
                    break;

                case MatchTypes.HotSeat:
                    ColourForSelectedUnit();
                    break;

                case MatchTypes.Singleplayer:
                    if (GameStateManager.Instance.IsCurrentPlayerAI())
                    {
                        DoBFSyStuffForAI();
                    }
                    else
                    {
                        ColourForSelectedUnit();
                    }
                    break;

                default:
                    break;
                }
            }
        }
        if (GameStateManager.Instance.IsCurrentPlayerAI() == false)
        {
            UIManager.UpdateAbilitiesPanel(UIManager.Instance.AbilitiesPanel, UIManager.Instance.AbilityPrefab, SelectedUnit);
        }
    }
예제 #18
0
 private void Start()
 {
     equipController = transform.GetComponent <EquipController>();
     unitSelector    = transform.GetComponent <UnitSelector>();
 }
예제 #19
0
 public virtual void OnInputAction(UnitSelector selector = null)
 {
 }
예제 #20
0
 public void OnUnitSelected(UnitSelector unitSelector)
 {
     selectedUnits.Add(unitSelector);
     UpdateSquadCost(squadCost + unitSelector.SquadCost);
 }
예제 #21
0
 public void Awake()
 {
     // Get components
     _camera       = Camera.main;
     _unitSelector = GetComponent <UnitSelector>();
 }
예제 #22
0
파일: Game.cs 프로젝트: hefanzhou/OpenAW3D
    // Use this for initialization
    void Start()
    {
        Selector = GameObject.Find("Selector").GetComponent<UnitSelector>();
        Level = GameObject.Find("Level").GetComponent<Level>();
        HUD = GameObject.Find("GUI").GetComponent<HeadsUpDisplay>();
        Camera = GameObject.Find("Main Camera").GetComponent<Camera>();

        Units = GameObject.Find("Units").transform;
        Buildings = GameObject.Find("Buildings").transform;

        Teams[0].TeamNo = 1;
        Teams[1].TeamNo = 2;
    }
예제 #23
0
 void Start()
 {
     unitSelector = transform.parent.GetComponent <UnitSelector>();
 }
예제 #24
0
 public void OnUnitDeselected(UnitSelector unitSelector)
 {
     selectedUnits.Remove(unitSelector);
     UpdateSquadCost(squadCost - unitSelector.SquadCost);
 }
예제 #25
0
 private void Awake()
 {
     instance = this;
 }