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); } }
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); }