/** 兵营改变势力 */ public void OnBuildChangeLegion(UnitData buildUnitData, int preLegionId, int targetLegionId) { // 强制更新兵营所属势力 updateBuildLegion.Execute(); if (preLegionId == targetLegionId) { Debug.Log("<color=red>preLegionId == targetLegionId</color>"); } // 攻占方势力数据 LegionData targetLegionData = War.GetLegionData(targetLegionId); UnitCtl heroUnit = GetHeroByBuild(buildUnitData.unit); if (heroUnit != null) { // 英雄数据 HeroData heroData = heroUnit.heroData; // 英雄行为 BHero heroBehaviour = heroUnit.GetComponent <BHero>(); // int legionId = heroUnit.unitData.legionId; // ---如果状态是幕前 if (heroData.state == HeroState.Foregstage) { // KillHero(heroUnit, targetLegionData); if (War.requireSynch) { if (War.IsSendService(targetLegionData.legionId, targetLegionData.type)) { War.service.C_SyncHeroBackstage_0x828(heroUnit.unitData.uid, targetLegionId); } } else { KillHero(heroUnit, targetLegionData); } } } else { // // 添加经验--占领 // targetLegionData.levelData.AddExp_Build(); } War.signal.BuildChangeLegionComplete(); }
protected override void OnUpdate() { base.OnUpdate(); if (!War.isGameing) { return; } if (War.isRecord) { return; } if (!unitData.build_turret) { return; } attackCD += Time.deltaTime; if (attackCD >= unitData.attackSpeed) { attackCD = 0; if (!War.IsSendService(legionData)) { return; } int unitType = 0; unitType = unitType.USolider(true); int relation = 0; relation = relation.REnemy(true); UnitCtl target = War.scene.SearchUnit_MinDistance(transform.position, unitData.attackRadius, unitType, unitData.legionId, relation); if (target != null) { Atk(target); } } }
public static bool IsSendService(LegionData legionData) { return(War.IsSendService(legionData.legionId, legionData.type)); }
public static bool IsSendService(int legionId) { LegionData legionData = War.GetLegionData(legionId); return(War.IsSendService(legionData)); }