Example #1
0
    public override void OnUpdate()
    {
        if (!Input.GetMouseButton(Layer.mouseActionButton))
        {
            SwitchState <PlayerInputIdle>(1);
            return;
        }

        Ray        mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit mouseRayInfo;

        if (Layer.selectedTroops.Count > 0 && Physics.Raycast(mouseRay, out mouseRayInfo) && mouseRayInfo.point.y <= 3 && !References.Fow.IsFogged(mouseRayInfo.point))
        {
            int   groupId;
            int[] groupIds = TroopManager.ContainingGroupZones(NetworkController.CurrentPlayerId, mouseRayInfo.point);

            if (groupIds.Length > 0)
            {
                groupId = groupIds[0];
                TroopManager.SwitchTroopsToGroup(NetworkController.CurrentPlayerId, groupId, Layer.selectedTroops.ToArray());
            }
            else
            {
                groupId = TroopManager.CreateGroup(NetworkController.CurrentPlayerId, Layer.selectedTroops.ToArray());
            }

            TroopManager.MoveGroup(NetworkController.CurrentPlayerId, groupId, mouseRayInfo.point);

            foreach (TroopBase troop in Layer.selectedTroops)
            {
                NetworkController.instance.clientController.sendUnitTarget(troop.id, troop.Target);
            }
        }
    }
Example #2
0
    public TroopManager()
    {
        // Initialize
        listTroop   = new List <Troop>();
        ARM_SPRITES = new List <List <List <Sprite[]> > >();
        troopShadow = Resources.Load <Sprite>(String.TROOP_PATH + String.TROOP_SHADOW);

        string[] ARMS   = new string[] { "ARM_1", "ARM_2" };
        string[] STATES = new string[] { "IDLE", "RUN", "ATTACK" };
        string[] DIRECT = new string[] { "E", "NE", "N", "NW", "W", "SW", "S", "SE" };

        // Loading sprites
        for (int k = 0; k < ARMS.Length; k++)
        {
            List <List <Sprite[]> > ARM = new List <List <Sprite[]> >();
            for (int i = 0; i < STATES.Length; i++)
            {
                List <Sprite[]> STATE = new List <Sprite[]>();
                for (int j = 0; j < DIRECT.Length; j++)
                {
                    STATE.Add(TroopManager._LoadSpritesheet(ARMS[k], STATES[i], DIRECT[j]));
                }
                ARM.Add(STATE);
            }
            ARM_SPRITES.Add(ARM);
        }
    }
Example #3
0
 void UpdateUnitPosition(int troopPlayerId, int troopId, Vector3 position, NetworkMessageInfo info)
 {
     if (isMe(troopPlayerId))
     {
         return;
     }
     TroopManager.MoveTroop(troopPlayerId, troopId, position);
 }
Example #4
0
    public bool CheckForEnemies()
    {
        TroopBase enemy = TroopManager.GetClosestInRangeEnemy(this);

        closestInRangeEnemy = (enemy == null || enemy.playerId == playerId) ? null : enemy;

        return(closestInRangeEnemy != null);
    }
 void Awake()
 {
     taiwanMap     = FindObjectOfType <TaiwanMap>();
     terrain       = FindObjectOfType <Terrain>();
     messageBroker = FindObjectOfType <RabbitMQClient>();
     troopManager  = FindObjectOfType <TroopManager>();
     twTerrainCam  = FindObjectOfType <Camera>();
 }
Example #6
0
 void UnitLightingData(int troopPlayerId, int troopId, float intensity, float range, bool lightingEnabled, NetworkMessageInfo info)
 {
     if (!isMe(troopPlayerId))
     {
         //networkController.log("unit FadeTroopLight " + troopId + " for " + troopPlayerId + " intensity:" + intensity + " , range:" + range + " , enabled:" + lightingEnabled);
         TroopManager.FadeTroopLight(troopPlayerId, troopId, intensity, range, lightingEnabled);
     }
 }
Example #7
0
 void UpdateUnitTarget(int troopPlayerId, int troopId, Vector3 target, NetworkMessageInfo info)
 {
     if (isMe(troopPlayerId))
     {
         return;
     }
     TroopManager.SetTroopTarget(troopPlayerId, troopId, target);
 }
Example #8
0
        private async void PlayerTroopsLoadingTimerWorker(object sender, EventArgs e)
        {
            //--------------------
            ((Timer)sender).Enabled = false;
            ((Timer)sender).Dispose();
            //--------------------
            ThereIsServer.GameObjects.MyProfile.PlayerTroops =
                await TroopManager.LoadTroopManager();


            //--------------------
            this.IsLoadingEnded1 = true;
        }
Example #9
0
        private void ProjectFiles_lb_SelectedIndexChanged(object sender, EventArgs e)
        {
            SpecialForm form = null;

            if (projectFiles_lb.SelectedIndex >= 0)
            {
                string item            = projectFiles_lb.SelectedItem.ToString();
                string itemManagerName = item.Remove(item.Length - 1) + "Manager";

                if (item.Equals("Troops"))
                {
                    form = new TroopManager();
                }
                else if (item.Equals("PartyTemplates"))
                {
                    form = new PartyTemplateManager();
                }
                else if (item.Equals("Parties"))
                {
                    form = new PartyManager();
                }
                else if (item.Equals("Menus"))
                {
                    form = new MenuManager();
                }
                else if (item.Equals("Items"))
                {
                    form = new ItemManager();
                }
                else if (item.Equals("Skills"))
                {
                    form = new SkillManager();
                }
                else
                {
                    foreach (ToolForm cm in scriptCommander.CustomManagers)
                    {
                        if (cm.GetType().Name.Equals(itemManagerName))
                        {
                            form = cm;
                        }
                    }
                }
            }

            if (form != null)
            {
                AddNewTab(form, TabMode.FillHeight);
            }
        }
Example #10
0
    void UpdateAgents()
    {
        TroopBase[] troops = TroopManager.GetTroops(NetworkController.CurrentPlayerId);
        troopFogAgents = new FogAgent[troops.Length];

        for (int i = 0; i < troops.Length; i++)
        {
            TroopBase troop = troops[i];
            troopFogAgents[i] = new FogAgent(troop.transform, troop.sightRadius * 2);
        }

        foreach (FogAgent fogAgent in fogAgents)
        {
            fogAgent.Update();
        }
    }
Example #11
0
    void Select()
    {
        if (!Input.GetKey(Layer.addToSelectionKey1) && !Input.GetKey(Layer.addToSelectionKey2))
        {
            DeselectAll();
        }

        TroopBase[] troops = TroopManager.GetTroops(NetworkController.CurrentPlayerId);

        if (selectionRect.size.magnitude <= minBoxSize)
        {
            Ray        selectionRay = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit selectionRayInfo;

            if (Physics.Raycast(selectionRay, out selectionRayInfo))
            {
                TroopBase troop = selectionRayInfo.collider.GetComponent <TroopBase>();

                if (troop != null && troop.playerId == NetworkController.CurrentPlayerId)
                {
                    troop.Selected = true;

                    if (!Layer.selectedTroops.Contains(troop))
                    {
                        Layer.selectedTroops.Add(troop);
                    }
                }
            }
        }
        else
        {
            foreach (TroopBase troop in troops)
            {
                Vector3 troopScreenPosition = Camera.main.WorldToScreenPoint(troop.transform.position);
                troopScreenPosition.y = Screen.height - troopScreenPosition.y;

                if (selectionRect.Contains(troopScreenPosition, true))
                {
                    troop.Selected = true;
                    Layer.selectedTroops.Add(troop);
                }
            }
        }
    }
Example #12
0
        //--------------------------------------------------
        private async void CreatePlayerTroops_Tick(object sender, EventArgs e)
        {
            ((Timer)sender).Enabled = false;
            ((Timer)sender).Dispose();
            //-----------------------------------------------
            PlayerTroops = TroopManager.GetTroopManager(Troop.GetBasicTroops());


            //-----------------------------------------------
            //-----------------------------------------------
            await Troop.CreatePlayerTroops(PlayerTroops.Troops);

            //-----------------------------------------------



            ((CreateProfileSandBox)ThereIsConstants.Forming.TheMainForm.ShowingSandBox).IsCreatingEnded4 = true;
            GC.Collect();
        }
Example #13
0
    public override void OnUpdate()
    {
        base.OnUpdate();

        if (debug && Input.GetKey(KeyCode.Space))
        {
            if (!NetworkController.instance.isConnected)
            {
                TroopManager.Spawn(new [] { NetworkController.CurrentPlayerId, 100 }.GetRandom(), Random.Range(0, int.MaxValue), Random.Range(0, 3));
            }
            else if (NetworkController.instance.clientController.playerId == 1)
            {
                NetworkController.instance.clientController.spawnUnit(Random.Range(0, 3), new Vector3(-50, 0, 0), Quaternion.identity);
            }
            else
            {
                NetworkController.instance.clientController.spawnUnit(Random.Range(0, 3), new Vector3(50, 0, 0), Quaternion.identity);
            }
        }
    }
Example #14
0
    //Manage the IA which player has to fight.
    //Counter on counterProb %.
    //Get gold in noteHitProb% at notes (this is in NotesIA() at NoteHit() and NoteMissed() methods).
    public void manageIA()
    {
        if (enemyGold >= 20)
        {
            int            rnShop      = Random.Range(0, 3);
            int            rnStreet    = Random.Range(0, 3);
            float          rnRandom    = Random.Range(0f, 1f);
            TroopManager[] allyChilds  = allyTroops.GetComponentsInChildren <TroopManager>();
            TroopManager[] enemyChilds = enemyTroops.GetComponentsInChildren <TroopManager>();

            if (enemyHP <= 25)
            {
                rnRandom /= 2;
            }

            if (rnRandom < counterProb && allyChilds.Length != 0)
            {
                float maxX           = -7.0f;
                int   selectedATroop = 0;
                for (int i = 0; i < allyChilds.Length; i++)
                {
                    if (allyChilds[i].transform.position.x > maxX)
                    {
                        maxX           = allyChilds[i].transform.position.x;
                        selectedATroop = i;
                    }
                }

                TroopManager randomObject = allyChilds[selectedATroop];
                bool         countered    = false;

                if (enemyChilds.Length != 0)
                {
                    for (int i = 0; i < enemyChilds.Length; i++)
                    {
                        if (enemyChilds[i].street == randomObject.street)
                        {
                            if (randomObject.type == 0)
                            {
                                if (enemyChilds[i].type == 2)
                                {
                                    countered = true;
                                }
                            }
                            else
                            {
                                if (enemyChilds[i].type < randomObject.type)
                                {
                                    countered = true;
                                }
                            }
                        } //If end.
                    }     //For end.
                }         //If end.

                if (!countered)
                {
                    rnShop   = (randomObject.type == 0) ? 2 : randomObject.type - 1;
                    rnStreet = randomObject.street;
                }
            }

            switch (rnShop)
            {
            case 0:
                switch (rnStreet)
                {
                case 0:
                    GameObject squireTroop0 = Instantiate(squire, new Vector3(0.7f, 1.8f, 5.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    squireTroop0.transform.localScale = new Vector3(0.3f, 0.3f, 1f);
                    squireTroop0.GetComponent <TroopManager>().allyOrEnemy = false;
                    squireTroop0.GetComponent <TroopManager>().type        = 0;
                    squireTroop0.GetComponent <TroopManager>().street      = 0;
                    squireTroop0.layer         = 11;
                    squireTroop0.transform.tag = "EnemySquire";
                    break;

                case 1:
                    GameObject squireTroop1 = Instantiate(squire, new Vector3(1.4f, 1.0f, 4.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    squireTroop1.transform.localScale = new Vector3(0.35f, 0.35f, 1f);
                    squireTroop1.GetComponent <TroopManager>().allyOrEnemy = false;
                    squireTroop1.GetComponent <TroopManager>().type        = 0;
                    squireTroop1.GetComponent <TroopManager>().street      = 1;
                    squireTroop1.layer         = 11;
                    squireTroop1.transform.tag = "EnemySquire";
                    break;

                case 2:
                    GameObject squireTroop2 = Instantiate(squire, new Vector3(2.0f, 0.1f, 3.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    squireTroop2.transform.localScale = new Vector3(0.4f, 0.4f, 1f);
                    squireTroop2.GetComponent <TroopManager>().allyOrEnemy = false;
                    squireTroop2.GetComponent <TroopManager>().type        = 0;
                    squireTroop2.GetComponent <TroopManager>().street      = 2;
                    squireTroop2.layer         = 11;
                    squireTroop2.transform.tag = "EnemySquire";
                    break;
                }
                break;

            case 1:
                switch (rnStreet)
                {
                case 0:
                    GameObject archerTroop0 = Instantiate(archer, new Vector3(0.7f, 1.8f, 5.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    archerTroop0.transform.localScale = new Vector3(0.3f, 0.3f, 1f);
                    archerTroop0.GetComponent <TroopManager>().allyOrEnemy = false;
                    archerTroop0.GetComponent <TroopManager>().type        = 1;
                    archerTroop0.GetComponent <TroopManager>().street      = 0;
                    archerTroop0.layer         = 11;
                    archerTroop0.transform.tag = "EnemyArcher";
                    break;

                case 1:
                    GameObject archerTroop1 = Instantiate(archer, new Vector3(1.3f, 1.0f, 4.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    archerTroop1.transform.localScale = new Vector3(0.35f, 0.35f, 1f);
                    archerTroop1.GetComponent <TroopManager>().allyOrEnemy = false;
                    archerTroop1.GetComponent <TroopManager>().type        = 1;
                    archerTroop1.GetComponent <TroopManager>().street      = 1;
                    archerTroop1.layer         = 11;
                    archerTroop1.transform.tag = "EnemyArcher";
                    break;

                case 2:
                    GameObject archerTroop2 = Instantiate(archer, new Vector3(2.0f, 0.1f, 3.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    archerTroop2.transform.localScale = new Vector3(0.4f, 0.4f, 1f);
                    archerTroop2.GetComponent <TroopManager>().allyOrEnemy = false;
                    archerTroop2.GetComponent <TroopManager>().type        = 1;
                    archerTroop2.GetComponent <TroopManager>().street      = 2;
                    archerTroop2.layer         = 11;
                    archerTroop2.transform.tag = "EnemyArcher";
                    break;
                }
                break;

            case 2:
                switch (rnStreet)
                {
                case 0:
                    GameObject knightTroop0 = Instantiate(knight, new Vector3(0.4f, 1.8f, 5.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    knightTroop0.transform.localScale = new Vector3(0.3f, 0.3f, 1f);
                    knightTroop0.GetComponent <TroopManager>().allyOrEnemy = false;
                    knightTroop0.GetComponent <TroopManager>().type        = 2;
                    knightTroop0.GetComponent <TroopManager>().street      = 0;
                    knightTroop0.layer         = 11;
                    knightTroop0.transform.tag = "EnemyKnight";

                    break;

                case 1:
                    GameObject knightTroop1 = Instantiate(knight, new Vector3(1.0f, 1.0f, 4.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    knightTroop1.transform.localScale = new Vector3(0.35f, 0.35f, 1f);
                    knightTroop1.GetComponent <TroopManager>().allyOrEnemy = false;
                    knightTroop1.GetComponent <TroopManager>().type        = 2;
                    knightTroop1.GetComponent <TroopManager>().street      = 1;
                    knightTroop1.layer         = 11;
                    knightTroop1.transform.tag = "EnemyKnight";
                    break;

                case 2:
                    GameObject knightTroop2 = Instantiate(knight, new Vector3(1.7f, 0.1f, 3.0f), Quaternion.Euler(0.0f, 0.0f, 0.0f), enemyTroops.transform);
                    knightTroop2.transform.localScale = new Vector3(0.4f, 0.4f, 1f);
                    knightTroop2.GetComponent <TroopManager>().allyOrEnemy = false;
                    knightTroop2.GetComponent <TroopManager>().type        = 2;
                    knightTroop2.GetComponent <TroopManager>().street      = 2;
                    knightTroop2.layer         = 11;
                    knightTroop2.transform.tag = "EnemyKnight";
                    break;
                }
                break;
            } //End of rnShop switch.
            enemyGold -= 20;
        }     //If end.
    }
Example #15
0
 void UnitDamage(int troopPlayerId, int troopId, float damage, NetworkMessageInfo info)
 {
     //networkController.log("Unit " + troopId + " of " + troopPlayerId + " is dealted for " + damage);
     TroopManager.DamageTroop(troopPlayerId, troopId, damage);
 }
Example #16
0
 void ToClientSpawnUnit(int troopPlayerId, int troopId, int troopType, Vector3 position, Quaternion rotation, NetworkMessageInfo info)
 {
     //networkController.log("Spawn unit " + troopId + " for " + troopPlayerId + " at " + position);
     TroopManager.Spawn(troopPlayerId, troopId, troopType, position, rotation);
 }
Example #17
0
 void Start()
 {
     //only if we didn't assign, try to do it automatically
     if (!tm)tm = FindObjectOfType<TroopManager> ();
     tm.ManageGate (this);
     nextTroopToSpawnName = troopPrefabs[0].name;
     if (!stats)Debug.LogError ("@Gate.Start(). No reference to stats");
     CanSpawn = true;
     IsAlive = true;
 }
Example #18
0
    // Use this for initialization
    void Start()
    {
        playerTroops = this;
        healthy.Add("Hoplite",startingHoplite);
        healthy.Add("Archer", startingArcher);
        healthy.Add("Swordsman", startingSwordsman);
        healthy.Add("Cavalry", startingCavalry);
        healthy.Add("Slinger", startingSlinger);
        healthy.Add("Peltast", startingPeltast);

        wounded.Add("Hoplite", 0);
        wounded.Add("Archer", 0);
        wounded.Add("Swordsman", 0);
        wounded.Add("Cavalry", 0);
        wounded.Add("Slinger", 0);
        wounded.Add("Peltast", 0);
    }
Example #19
0
 public static int ToTypeId(TroopBase troop)
 {
     return(TroopManager.ToTypeId(troop));
 }
Example #20
0
 void ToClientKillUnit(int troopPlayerId, int troopId, NetworkMessageInfo info)
 {
     TroopManager.KillTroop(troopPlayerId, troopId);
 }
Example #21
0
 public void Despawn()
 {
     TroopManager.Despawn(this);
 }
Example #22
0
 public static Bullet Spawn(int bulletId, int playerIdSource, int troopIdSource, int playerIdTarget, int troopIdTarget)
 {
     return(Spawn(bulletId, TroopManager.GetTroop(playerIdSource, troopIdSource), TroopManager.GetTroop(playerIdTarget, troopIdTarget)));
 }
Example #23
0
    // Use this for initialization
    void Start()
    {
        playerResources = this;
        waterText = GameObject.Find("WaterMonitor");
        foodText = GameObject.Find("FoodMonitor");
        moraleText = GameObject.Find("MoraleMonitor");
        sailorText = GameObject.Find("SailorMonitor");
        staminaText = GameObject.Find("StaminaMonitor");
        healthText = GameObject.Find("HealthMonitor");
        hullText = GameObject.Find("HullMonitor");
        goldText = GameObject.Find("GoldMonitor");

        waterText.GetComponent<Text>().text = water.ToString("F0") + "L";
        foodText.GetComponent<Text>().text = food.ToString("F0") + "Kg";
        moraleText.GetComponent<Text>().text = morale.ToString() + "%";
        staminaText.GetComponent<Text>().text = stamina.ToString() + "%";
        sailorText.GetComponent<Text>().text = sailors.ToString();
        healthText.GetComponent<Text>().text = health.ToString() + "%";
        hullText.GetComponent<Text>().text = shipHealth.ToString() + "%";
        goldText.GetComponent<Text>().text = gold.ToString();
        troopManager = GameObject.FindGameObjectWithTag("TroopManager").GetComponent<TroopManager>();
    }