예제 #1
0
        public void BackMaterial(WarMaterialsType type)
        {
            RevokeMaterialStateCount(type);
            int stateCount = GetMaterialStateCount(type);


            if (stateCount <= 0)
            {
                if (materialType == type)
                {
                    BackMaterial();
                }
                else
                {
                    for (int i = 0; i < materialHistory.Count;)
                    {
                        if (materialHistory [i] == type)
                        {
                            materialHistory.RemoveAt(i);
                        }
                        else
                        {
                            i++;
                        }
                    }
                }
            }
        }
예제 #2
0
 private int GetMaterialStateCount(WarMaterialsType type)
 {
     if (materialStates.ContainsKey(type))
     {
         return(materialStates [type]);
     }
     return(0);
 }
예제 #3
0
 private void RevokeMaterialStateCount(WarMaterialsType type)
 {
     if (materialStates.ContainsKey(type))
     {
         materialStates [type] -= 1;
         if (materialStates [type] <= 0)
         {
             materialStates.Remove(type);
         }
     }
 }
예제 #4
0
 private void AddMaterialStateCount(WarMaterialsType type)
 {
     if (materialStates.ContainsKey(type))
     {
         materialStates [type] += 1;
     }
     else
     {
         materialStates.Add(type, 1);
     }
 }
예제 #5
0
        public void SetMaterial(WarMaterialsType type)
        {
            if (materialType == type)
            {
                AddMaterialStateCount(materialType);
                return;
            }

            materialHistory.Add(materialType);
            AddMaterialStateCount(materialType);
            materialType = type;
        }
        public void SetData(SkillOperateData data)
        {
            uiCamera = Coo.uiCamera;

            this.data = data;
            data.receiveList.Clear();
            skillButton.SetData(data);
            skillInfoNode.SetData(data);
            if (useEffect != null)
            {
                useEffect.SetData(data);
            }



            if (data.skillConfig.skillType == SkillType.Build_Replace)
            {
                BuildConfig buildConfig = War.model.GetBuildConfig(data.skillConfig.buildId);
                Debug.Log("data.skillId=" + data.skillId + "  data.skillConfig.buildId=" + data.skillConfig.buildId);
                string file = buildConfig.GetLevelConfig(1).avatarConfig.Model;
                Debug.Log(file);
                GameObject prefab = WarRes.GetPrefab(file);
                obj = GameObject.Instantiate(prefab);
                obj.SetActive(false);
                obj.GetComponent <SpriteRenderer>().color = new Color(0.8f, 0.8f, 0.8f, 0.8f);
                objDestory = true;
            }
            else
            {
                switch (data.skillConfig.operate)
                {
                case SkillOperateType.SelectCircle:
                    obj = GameObject.Instantiate(War.skillUse.selectCircleView.gameObject);
                    obj.SetActive(false);
                    SkillOperateSelectCircleView skillOperateSelectCircleView = obj.GetComponent <SkillOperateSelectCircleView> ();
                    skillOperateSelectCircleView.Radius   = data.skillConfig.radius;
                    skillOperateSelectCircleView.Relation = data.skillConfig.relation;
                    objDestory = true;
                    break;
                }
            }

            selectUnitMaterialType = data.skillConfig.relation.REnemy() ? WarMaterialsType.operateSelect_Enemy : WarMaterialsType.operateSelect_Own;

            if (this.data != null)
            {
                rectTransform.anchoredPosition = new Vector2(-180, 56);
                MoveToGroove();

                this.data.sSetUse += SetUse;
            }
        }
예제 #7
0
        private void BackMaterial()
        {
            if (materialHistory.Count > 0)
            {
                WarMaterialsType type = materialHistory[materialHistory.Count - 1];
                materialHistory.RemoveAt(materialHistory.Count - 1);

                materialType = type;
            }
            else if (materialType != WarMaterialsType.stateDefault)
            {
                SetDefaultMaterial();
            }
        }
예제 #8
0
 void UpdateMaterial()
 {
     if (_materialType != materialType)
     {
         _materialType = materialType;
         if (avatarSpriteRender != null)
         {
             if (materialType == WarMaterialsType.stateDefault)
             {
                 avatarSpriteRender.material = defaultMaterial;
                 material = null;
             }
             else
             {
                 material = War.materials.GetMaterial(materialType);
                 avatarSpriteRender.material = material;
             }
         }
     }
 }
예제 #9
0
        public Material GetMaterial(WarMaterialsType type)
        {
            switch (type)
            {
            /** 状态--默认 */
            case WarMaterialsType.stateDefault:
                return(stateDefault);

                break;

            /** 状态--冰冻 */
            case WarMaterialsType.stateFreeze:
                return(stateFreeze);

                break;

            /** 操作--选择 */
            case WarMaterialsType.operateSelect:
                return(operateSelect);

                break;

            case WarMaterialsType.operateSelect_Own:
                return(operateSelect_Own);

                break;

            case WarMaterialsType.operateSelect_Enemy:
                return(operateSelect_Enemy);

                break;

            default:
                return(stateDefault);

                break;
            }
        }
예제 #10
0
 public void SetDefaultMaterial()
 {
     materialStates.Clear();
     materialHistory.Clear();
     materialType = WarMaterialsType.stateDefault;
 }
예제 #11
0
        virtual public void SetAvatar(string prefabFile)
        {
            if (this.prefabFile == prefabFile)
            {
                return;
            }
            this.prefabFile = prefabFile;


            GameObject prefab = WarRes.GetPrefab(prefabFile);

            if (avatar == null)
            {
                if (prefab == null)
                {
                    Debug.Log(string.Format("<color=red>单位资源没找到 prefabFile={0}</color>", prefabFile));
                }
                GameObject go = GameObject.Instantiate(prefab);
                go.name = "avatar";
                go.transform.SetParent(avatarContainer);
                go.transform.localPosition = unitData.unitType == UnitType.Solider ? new Vector3(0, 0, 0.5f) : Vector3.zero;
                avatar             = go.GetComponent <Avatara>();
                avatarInfo         = go.GetComponent <AvatarInfo>();
                avatarSpriteRender = go.GetComponent <SpriteRenderer> ();
                defaultMaterial    = avatarSpriteRender.material;
            }
            else
            {
//                Debug.Log("prefabFile=" + prefabFile + " , prefab=" + prefab);
                SpriteAvatar spriteAvatar       = (SpriteAvatar)avatar;
                SpriteAvatar prefabSpriteAvatar = prefab.GetComponent <SpriteAvatar>();
                if (prefabSpriteAvatar != null)
                {
                    spriteAvatar.avatarData = prefabSpriteAvatar.avatarData;
                    avatar.gameObject.transform.localScale = prefab.transform.localScale;
                }
                else
                {
                    Debug.LogFormat("<color=red>prefabFile={0} 有问题</color>", prefabFile);
                }

                if (avatarInfo != null)
                {
                    AvatarInfo spriteAvatarInfo = prefab.GetComponent <AvatarInfo>();
                    avatarInfo.CopyInfo(spriteAvatarInfo);
                }
            }

            avatar.angle  = angel;
            avatar.action = action;
            avatar.speed  = speed;

            if (materialType != WarMaterialsType.stateDefault)
            {
                _materialType = materialType;
                avatarSpriteRender.material = War.materials.GetMaterial(materialType);
            }

            if (sChangeAvatar != null)
            {
                sChangeAvatar(this);
            }
        }