Пример #1
0
 public void Init(SoldierType Type)
 {
     this.transform.localScale = new Vector3(1, 1, 1);
     myType = Type;
     Debug.Log(Type);
     this.GetComponent <Image>().sprite = (Sprite)Resources.Load(Type.ToString() + ".png");
     attack = int.Parse(ini.ReadIniContent(Type.ToString(), "Attack"));
     health = int.Parse(ini.ReadIniContent(Type.ToString(), "Health"));
 }
Пример #2
0
    /*
     * setting new weapon & refreshing the ui with the new weapon.
     * disables curr weapon and enables new weapon.
     */
    internal void RefreshWeapon(SoldierType newWeapon, bool conceal = true)
    {
        GameObject child = null;
        GameObject weapons;

        weapons = GetAllWeapons();

        //set new weapon indicator
        Type = newWeapon;

        //iterate over grandchildren (weapons) and find the active weapon:
        for (int i = 0; weapons != null && i < weapons.transform.childCount; i++)
        {
            child = weapons.transform.GetChild(i).gameObject;
            //turn off curr active weapon
            if (IsObjectActive(child))
            {
                child.SetActive(false);
            }
            //turn on new weapon
            if (child.name.Contains(newWeapon.ToString().ToLower()))
            {
                child.SetActive(true);
                //RevealWeapon();

                if (conceal)
                {
                    ConcealWeapon(child);
                }
            }
        }
    }
Пример #3
0
    public void SwitchType(SoldierType type)
    {
        _type            = type;
        gameObject.layer = LayerMask.NameToLayer(_type.ToString());

        switch (type)
        {
        case SoldierType.Neutral:
            _mesh.material = _neutralMat;
            break;

        case SoldierType.Friendly:
            _mesh.material = _friendlyMat;

            if (_friendlyScript != null)
            {
                _friendlyScript.enabled = true;
                Destroy(this);
            }
            break;

        case SoldierType.Enemy:
            break;
        }
    }
Пример #4
0
    public void Setup(SoldierType type, List <Soldier> soldiers)
    {
        this.soldiers          = soldiers;
        selectedSoldiers       = new List <Soldier>();
        name.text              = type.ToString();
        unitSelectedRatio.text = "0/" + soldiers.Count;

        /*
         * var onChange = new InputField.OnChangeEvent();
         * onChange.AddListener(OnTextChanged);
         * numUnitsToSelectField.onValueChanged = onChange;*/
    }
Пример #5
0
        public void SendSoldier(Planet from, Planet to, int soldierNum, SoldierType type)
        {
            List <Soldier> soldierInPlanetFrom;

            switch (type)
            {
            case SoldierType.Player:
                soldierInPlanetFrom = from.PlayerSoldiers;
                break;

            case SoldierType.Enemy:
                soldierInPlanetFrom = from.EnemySoldiers;
                break;

            default:
                soldierInPlanetFrom = new List <Soldier>();
                break;
            }
            if (soldierNum > soldierInPlanetFrom.Count)
            {
                soldierNum = soldierInPlanetFrom.Count;
            }
            var soldiers = soldierInPlanetFrom.GetRange(0, soldierNum);

            Debug.LogFormat("{0} 派 {1}兵 从{2}到{3}", type.ToString(), soldierNum, from.name, to.name);
            foreach (var s in soldiers)
            {
                s.UpdateState(Soldier.StateType.Move);
                from.SoldierLeave(s, s.Bloc);
                s.SetSeekDestination(to,
                                     () =>
                {
                    to.SoldierArrive(s, s.Bloc);
                });
            }
        }
Пример #6
0
    private void UpdateSoldierCard(SoldierType type, List <Soldier> soldiers)
    {
        var card = soldierTypeCards[type];

        card.TypeDisplay.text        = type.ToString();
        card.TroopAmountDisplay.text = soldiers.Count.ToString();

        float supply = 0, MaxSupply = 0, HP = 0;

        foreach (var soldier in soldiers)
        {
            supply    += soldier.Supply;
            MaxSupply += soldier.MaxSupply;
            HP        += soldier.Health;
        }

        card.SupplyAmountDisplay.text = $"{Mathf.Round(supply)}/{MaxSupply}";
        card.HPDisplay.text           = $"{Mathf.Round(HP * 100)}";

        if (card.DisplayingIndividualCards)
        {
            card.RefreshCards(soldiers);
        }
    }
Пример #7
0
        public override void Excute()
        {
            switch (mSoldierType)
            {
            case SoldierType.Rookie:
                FactoryManager.SoldierFactory.CreateCharacter <SoldierRookie>(mWeaponType, mSpawnPosition, mLv);
                break;

            case SoldierType.Sergeant:
                FactoryManager.SoldierFactory.CreateCharacter <SoldierSergeant>(mWeaponType, mSpawnPosition, mLv);
                break;

            case SoldierType.Captain:
                FactoryManager.SoldierFactory.CreateCharacter <SoldierCaptain>(mWeaponType, mSpawnPosition, mLv);
                break;

            default:
                Debug.LogError(GetType() + "/Excute()/ There is not mSoldierType :" + mSoldierType.ToString());

                break;
            }
        }
Пример #8
0
 string GenerateSoldierName(Planet planet, SoldierType type)
 {
     return("Soldier" + "_in_" + planet.name + "_" + type.ToString());
 }
Пример #9
0
        private void InitCamp(SoldierType soldierType)
        {
            GameObject gameObject     = null;
            string     gameObjectName = null;
            string     name           = null;
            string     icon           = null;
            Vector3    pos            = Vector3.zero;
            float      trainTime      = 0;

            switch (soldierType)
            {
            case SoldierType.Rookie:
                gameObjectName = "SoldierCamp_Rookie";
                name           = "新手兵营";
                icon           = "RookieCamp";
                trainTime      = 3;
                break;

            case SoldierType.Sergeant:
                gameObjectName = "SoldierCamp_Sergeant";
                name           = "中士兵营";
                icon           = "SergeantCamp";
                trainTime      = 4;
                break;

            case SoldierType.Captain:
                gameObjectName = "SoldierCamp_Captain";
                name           = "上尉兵营";
                icon           = "CaptainCamp";
                trainTime      = 5;
                break;

            default:

                Debug.LogError(GetType() + "/InitCamp()/Init Failed.The soldierType is not Contained: " + soldierType.ToString());
                break;
            }

            gameObject = GameObject.Find(gameObjectName);
            pos        = UnityTool.FindChild(gameObject, "TrainPoint").transform.position;
            SoldierCamp camp = new SoldierCamp(gameObject, name, icon, soldierType, pos, trainTime);

            gameObject.AddComponent <CampOnClick>().Camp = camp;

            mSoldierCampDIc.Add(soldierType, camp);
        }
Пример #10
0
 public override string ToString()
 {
     return(Type.ToString() + " E:" + (int)(Experience * 100));
 }
Пример #11
0
    internal string GetPreviewAnimationTriggerByWeapon(SoldierType weapon)
    {
        //make the weapon string have first upper case letter to avoid naming conflicts with unity:
        string fixedWeaponStr = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(weapon.ToString().ToLower());

        return(PREVIEW_ANIMATION_TRIGGER_PREFIX + fixedWeaponStr);
    }