Example #1
0
        void Start()
        {
            uiHandler                = GameObject.FindGameObjectWithTag("GameController").GetComponent <UIHandler>();
            backgroundSprite         = GetComponent <SpriteRenderer>();
            borderSprite             = transform.FindChild("Hex Border").GetComponent <SpriteRenderer>();
            terrainSprite            = transform.FindChild("Terrain Sprite").GetComponent <SpriteRenderer>();
            selectionHighlightSprite = transform.FindChild("Selection Highlight").GetComponent <SpriteRenderer>();
            enemyHighlightSprite     = transform.FindChild("Enemy Highlight").GetComponent <SpriteRenderer>();
            hoverHighlightSprite     = transform.FindChild("Hover Highlight").GetComponent <SpriteRenderer>();

            initialized   = true;
            TerrainSprite = _terrain;
        }
Example #2
0
        void Start()
        {
            uiHandler = GameObject.FindGameObjectWithTag("GameController").GetComponent <UIHandler>();
            spriteContainerTransform = transform.FindChild("SpriteHolder");
            UnitBackground           = spriteContainerTransform.FindChild("Background").GetComponent <SpriteRenderer>();
            BaseTypeSprite           = spriteContainerTransform.FindChild("Base Type").GetComponent <SpriteRenderer>();
            BaseTypeSprite.color     = Config.Palette.unitIconFill;
            BaseTypeBorder           = BaseTypeSprite.transform.FindChild("Base Type Border").GetComponent <SpriteRenderer>();
            BaseTypeBorder.color     = Config.Palette.border;
            WeaponSprite             = spriteContainerTransform.FindChild("Weapon").GetComponent <SpriteRenderer>();
            WeaponSprite.color       = Config.Palette.unitIconFill;
            WeaponSpriteBorder       = WeaponSprite.transform.FindChild("Weapon Border").GetComponent <SpriteRenderer>();
            WeaponSpriteBorder.color = Config.Palette.border;
            Border         = spriteContainerTransform.FindChild("Border").GetComponent <SpriteRenderer>();
            Border.color   = Config.Palette.border;
            pathVisualizer = uiHandler.GetComponent <PathVisualizer>();

            shaking   = false;
            shakeSeed = Random.Range(0.0f, 20000.0f);// So that units do not shake identically

            flashFadeActive    = false;
            isThisUnitSelected = false;
            visualizingCombat  = false;
            animatingCombat    = false;
            cursorHovered      = false;
            altButtonDown      = false;

            GameObject healthBarObject = Instantiate(healthBarPrefab, Vector3.zero, Quaternion.identity);

            healthBarObject.transform.SetParent(GameObject.Find("WorldCanvas").transform);
            healthBarObject.transform.localScale = Vector3.one;
            HealthBar  = healthBarObject.GetComponent <RectTransform>();
            HealthFill = HealthBar.FindChild("HealthFill").GetComponent <RectTransform>();

            initialized          = true;
            UnitType             = _unitType;
            WeaponType           = _weaponType;
            PlayerOwner          = _playerOwner;
            VisiblePosition      = _visiblePosition;
            MaxHealthDisplay     = _maxHealthDisplay;
            CurrentHealthDisplay = _currentHealthDisplay;
            ShowExtraInfo(UnitInfoDisplaySource.CombatAnimation, false);//Technically renders it true if AlwaysDisplayHealthBars is true
        }
Example #3
0
        public IUnitController Create(int playerOwner, UnitBaseType type, WeaponType weapon, HexEntry startPosition)
        {
            if (gameManager == null)
            {
                gameManager      = GetComponent <GameManager>();
                scenarioLoader   = GetComponent <ScenarioLoader>();
                selectionManager = GetComponent <SelectionManager>();
                uiHandler        = GetComponent <UIHandler>();
            }

            GameObject unit = Instantiate(unitPrefab, Vector3.zero, Quaternion.identity);

            IUnitController   unitController    = new DefaultUnitController(type, weapon, playerOwner);
            UnitSpriteManager unitSpriteManager = unit.GetComponent <UnitSpriteManager>();

            unitSpriteManager.UnitController = unitController;
            IMover          mover           = new DefaultMover(unitController, gameManager, selectionManager, scenarioLoader);
            OutcomeAnimator outcomeAnimator = new OutcomeAnimator(selectionManager, uiHandler);

            unitController.Initialize(mover, outcomeAnimator, unitSpriteManager, startPosition);

            switch (weapon)
            {
            case WeaponType.None:
                unitController.Weapon = new EmptyWeapon(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Spear:
                unitController.Weapon = new Spear(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Sword:
                unitController.Weapon = new Sword(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Axe:
                unitController.Weapon = new Axe(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Quarterstaff:
                unitController.Weapon = new Quarterstaff(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Flail:
                unitController.Weapon = new Flail(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Dagger:
                unitController.Weapon = new Dagger(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Longbow:
                unitController.Weapon = new Longbow(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Crossbow:
                unitController.Weapon = new Crossbow(unitController, gameManager, scenarioLoader, selectionManager);
                break;

            case WeaponType.Shield:
                unitController.Weapon = new Shield(unitController, gameManager, scenarioLoader, selectionManager);
                break;
            }

            return(unitController);
        }
Example #4
0
        }                                     // The player whose turn it currently is

        void Start()
        {
            // Cache major scripts to be initialized
            scenarioLoader   = GetComponent <ScenarioLoader>();
            uiHandler        = GetComponent <UIHandler>();
            selectionManager = GetComponent <SelectionManager>();
            unitFactory      = GetComponent <UnitFactory>();

            // Load map, then camera
            scenarioLoader.Initialize();
            uiHandler.Initialize();


            // Establish player types, network information
            GameObject matchControllerObject = GameObject.Find("MatchController");

            if (matchControllerObject != null)
            {
                matchController = matchControllerObject.GetComponent <Netcode.MatchController>();
            }
            if (matchController != null)
            {
                playerDirectory = new Dictionary <int, PlayerType>();
                foreach (int player in matchController.netRepPlayers.Keys)
                {
                    if (matchController.whoAmI == player)
                    {
                        playerDirectory.Add(player, PlayerType.Local);
                    }
                    else
                    {
                        playerDirectory.Add(player, PlayerType.Online);
                    }
                }
            }
            else if (Vaults.playerDirectory != null)
            {
                playerDirectory = Vaults.playerDirectory;
            }
            else
            {
                Debug.Log("Using default playerDirectory");
                playerDirectory = new Dictionary <int, PlayerType>();
                playerDirectory.Add(1, PlayerType.Local);
                playerDirectory.Add(2, PlayerType.AI); // FOR TESTING__, these defaults shouldn't be reached
            }

            Tutorial.TutorialManager tutorialManager = GetComponent <Tutorial.TutorialManager>();
            if (tutorialManager != null)
            {
                computerPlayer = new Tutorial.TutorialAI(tutorialManager, selectionManager, scenarioLoader);
            }
            else if (playerDirectory.Values.Contains(PlayerType.AI))
            {
                computerPlayer = new DefaultAI(selectionManager, scenarioLoader);
            }
            ActivePlayer = 1;

            // Build & load units onto the map
            if (Vaults.wsUnitList != null)
            {
                foreach (WeaponSelect.WSController.WSUnitDescriptor unit in Vaults.wsUnitList)
                {
                    unitFactory.Create(unit.player, unit.unitType, unit.weaponType, scenarioLoader.HexGrid[unit.position]);
                }
            }
            else   // FOR TESTING

            /*
             * unitFactory.Create(1, UnitBaseType.Simple, WeaponType.Longbow, GetComponent<ScenarioLoader>().HexGrid[new Vector2(-5, 5)]);
             * unitFactory.Create(1, UnitBaseType.Simple, WeaponType.Shield, GetComponent<ScenarioLoader>().HexGrid[new Vector2(-3, 5)]);
             * unitFactory.Create(2, UnitBaseType.Simple, WeaponType.Spear, GetComponent<ScenarioLoader>().HexGrid[new Vector2(0, -5)]);
             * unitFactory.Create(2, UnitBaseType.Simple, WeaponType.Flail, GetComponent<ScenarioLoader>().HexGrid[new Vector2(-3, -5)]);*/
            {
            }

            // Initialize the first turn
            selectionManager.Initialize();

            if (tutorialManager != null)
            {
                tutorialManager.Initialize();
            }
        }
Example #5
0
            public InputEnabled(bool hexHover, bool hexClick, bool unitHover, bool unitClick, bool undoMove, bool turnEnd, UIHandler uiHandler)
            {
                this.uiHandler = uiHandler;

                this.hexHover  = hexHover;
                this.hexClick  = hexClick;
                this.unitHover = unitHover;
                this.unitClick = unitClick;
                this.undoMove  = undoMove;
                TurnEnd        = turnEnd;
            }