Exemplo n.º 1
0
        public void OnReplaceSelect(int colorId, int level, AbstractBuildConfig buildConfig, object parameter)
        {
            UnitCtl unitCtl = (UnitCtl)parameter;
            bool    result  = false;

            if (buildConfig is BuildWallConfig)
            {
                result = Create_Wall((BuildWallConfig)buildConfig, unitCtl.transform.position);
            }
            else
            {
                result = Create_Build(colorId, level, buildConfig, unitCtl.transform.position, unitCtl.unitData.we_BuildConfigData);
            }

            if (result)
            {
                GameObject.Destroy(unitCtl.gameObject);
            }
        }
Exemplo n.º 2
0
        public bool Create_Build(int colorId, int level, AbstractBuildConfig buildConfig, Vector3 position, WE_BuildConfigData weBuildConfig = null)
        {
            if (War.sceneData == null)
            {
                this.ShowNotification(new GUIContent("请先‘选择关卡’或者去‘新建关卡’"));
                return(false);
            }

            if (!War.sceneData.legionDict.ContainsKey(colorId))
            {
                this.ShowNotification(new GUIContent("关卡没有配置'" + WarColor.Names[colorId] + "'势力,请先到(关卡/关卡配置)里添加势力"));
                return(false);
            }

            int initHP = weBuildConfig == null ? 0 : weBuildConfig.hp;

            int index = GetMaxIndex() + 1;

            BuildType buildType = buildConfig.buildType;

            // 初始兵力--计算
            float[] firstProp = new float[PropId.MAX];
            firstProp[PropId.HpAdd] = initHP;


            // 兵营初始属性[Hp]
            float[] initProp = new float[PropId.MAX];
            initProp[PropId.InitHp] = initHP;


            War.sceneData.buildFirstProp.Add(index, firstProp);
            War.sceneData.buildInitProp.Add(index, initProp);

            // 生成兵营UnitData
            UnitData unitData = new UnitData();

            unitData.id                             = index;
            unitData.legionId                       = colorId;
            unitData.unitType                       = UnitType.Build;
            unitData.buildType                      = buildType;
            unitData.level                          = level;
            unitData.position                       = position;
            unitData.buildConfig                    = (BuildConfig)buildConfig;
            unitData.we_BuildConfigData             = new WE_BuildConfigData();
            unitData.we_BuildConfigData.buildConfig = buildConfig;
            if (weBuildConfig != null)
            {
                unitData.we_BuildConfigData.hp = weBuildConfig.hp;
                unitData.we_BuildConfigData.settledPriority = weBuildConfig.settledPriority;
            }
            unitData.hp       = 0;
            unitData.avatarId = buildConfig.avatarId;



            War.sceneData.InitAttachPropData(index);
            War.sceneData.buildDict.Add(index, unitData);

            Selection.activeGameObject = War.sceneCreate.GenerationBuild(unitData);

            return(true);
        }