void RPC_S2C_AddCampArea(uLink.BitStream stream, uLink.NetworkMessageInfo info) { Vector3 townPos = stream.Read <Vector3> (); if (ForceSetting.Instance.Conflict(Id, mainPlayerId)) { return; } IntVector2 center = new IntVector2(Mathf.RoundToInt(townPos.x), Mathf.RoundToInt(townPos.z)); if (VArtifactTownManager.Instance.TownPosInfo.ContainsKey(center)) { //TownInfo ti = RandomTownManager.Instance.TownPosInfo[center]; //WorldMapManager.Instance.AddCamp(townPos); //ti.IsExplored = true; VArtifactTown ti = VArtifactTownManager.Instance.TownPosInfo [center]; //int id = ti.townId; RandomMapIconMgr.AddNativeIcon(ti); foreach (VArtifactUnit vau in ti.VAUnits) { vau.isDoodadNpcRendered = true; } ti.IsExplored = true; VArtifactTownManager.Instance.DetectTowns(ti); } }
public void OnNewTown(VArtifactTown town) { if (town != null && town.ms_id > 0) { m_RecordTown = town; } }
public static Vector3 GetDynamicNativeSinglePoint(VArtifactTown vat, System.Random randSeed) { VArtifactUnit vau = vat.VAUnits[randSeed.Next(vat.VAUnits.Count)]; Vector3 posBeforRot = vau.npcPos[randSeed.Next(vau.npcPos.Count)]; return(GetPosAfterRotation(vau, posBeforRot)); }
public void ChangeAlliance(VArtifactTown vat) { allyTownDic[vat.allyId].Remove(vat); vat.allyId = TownGenData.PlayerAlly; allyTownDic[vat.allyId].Add(vat); //--to do: refresh }
public void RestoreAlliance(VArtifactTown vat) { allyTownDic[vat.allyId].Remove(vat); vat.allyId = vat.genAllyId; allyTownDic[vat.allyId].Add(vat); //--to do: refresh }
void RPC_S2C_TownAreaList(uLink.BitStream stream, uLink.NetworkMessageInfo info) { Vector3[] townArea = stream.Read <Vector3[]> (); if (ForceSetting.Instance.Conflict(Id, mainPlayerId)) { return; } foreach (Vector3 townPos in townArea) { IntVector2 center = new IntVector2(Mathf.RoundToInt(townPos.x), Mathf.RoundToInt(townPos.z)); if (VArtifactTownManager.Instance.TownPosInfo.ContainsKey(center)) { VArtifactTown ti = VArtifactTownManager.Instance.TownPosInfo [center]; //int id = ti.townId; if (VArtifactTownManager.Instance.IsCaptured(ti.townId)) { RandomMapIconMgr.AddDestroyedTownIcon(ti); } else { RandomMapIconMgr.AddTownIcon(ti); DetectedTownMgr.Instance.AddDetectedTown(ti); } foreach (VArtifactUnit vau in ti.VAUnits) { vau.isDoodadNpcRendered = true; } ti.IsExplored = true; VArtifactTownManager.Instance.DetectTowns(ti); } } }
void RPC_S2C_AddTownArea(uLink.BitStream stream, uLink.NetworkMessageInfo info) { Vector3 townPos = stream.Read <Vector3> (); if (LogFilter.logDebug) { Debug.LogFormat("<color=blue>Add town pos:{0}</color>", townPos); } if (ForceSetting.Instance.Conflict(Id, mainPlayerId)) { return; } IntVector2 center = new IntVector2(Mathf.RoundToInt(townPos.x), Mathf.RoundToInt(townPos.z)); if (VArtifactTownManager.Instance.TownPosInfo.ContainsKey(center)) { VArtifactTown ti = VArtifactTownManager.Instance.TownPosInfo [center]; //int id = ti.townId; DetectedTownMgr.Instance.AddDetectedTown(ti); RandomMapIconMgr.AddTownIcon(ti); foreach (VArtifactUnit vau in ti.VAUnits) { vau.isDoodadNpcRendered = true; } ti.IsExplored = true; VArtifactTownManager.Instance.DetectTowns(ti); } }
public void AddAllyTown(VArtifactTown townData) { if (!allyTownDic.ContainsKey(townData.AllyId)) { allyTownDic.Add(townData.AllyId, new List <VArtifactTown> ()); } allyTownDic[townData.AllyId].Add(townData); }
public NpcTownLabel(VArtifactTown vat) { this.pos = vat.TransPos; townLabelType = TownLabelType.NpcTown; name = PELocalization.GetString(vat.townNameId); allyId = vat.allyId; allyColorId = vat.AllyColorId; PeMap.LabelMgr.Instance.Add(this); }
public DestroyedLabel(VArtifactTown vat) { this.pos = vat.TransPos; name = PELocalization.GetString(vat.townNameId); townType = vat.type; nativeType = vat.nativeType; allyId = vat.allyId; allyColorId = vat.AllyColorId; PeMap.LabelMgr.Instance.Add(this); }
public static void RestoreTownAlliance(int townId) { VArtifactTown vat = VArtifactTownManager.Instance.GetTownByID(townId); if (vat != null) { VATownGenerator.Instance.RestoreAlliance(vat); } //--to do: refresh }
public PeEntity GetTownNpc(VArtifactTown vat) { PeEntity npc = new PeEntity(); //List<VATownNpcInfo> npcList = vat.npcList; //foreach (VATownNpcInfo vaNpc in npcList) //{ // //--to do: //} return(npc); }
public static bool CheckTownAvailable(VArtifactTown vaTowndata) { if (!IsContained(vaTowndata)) { for (int i = 0; i < vaTowndata.VAUnits.Count; i++) { VArtifactUnit vau = vaTowndata.VAUnits[i]; vau.worldPos = new Vector3(vau.PosCenter.x, -1, vau.PosCenter.y); } return(true); } return(false); }
public void RemoveDetectedTown(VArtifactTown vat) { if (!detectedTowns.Contains(vat.PosCenter)) { return; } detectedTowns.Remove(vat.PosCenter); DTownsDict.Remove(vat.PosCenter); if (RemoveDetectedTownListener != null) { RemoveDetectedTownListener(vat.PosCenter); } }
public void AddMainTown(int areaId, VArtifactTown townData) { if (MainTownDic.ContainsKey(areaId)) { MainTownDic[areaId].Add(townData); } else { MainTownDic.Add(areaId, new List <VArtifactTown>() { townData }); } }
public void AddTown(int areaId, VArtifactTown townData) { // if(townData.type==VArtifactType.NpcTown){ if (townData.isMainTown) { AddMainTown(areaId, townData); } else { AddBranchTown(townData); } // } LinkTownToArea(townData); }
public void AddTownArea(IntVector2 areaIndex, VArtifactTown vat) { if (areaTown.ContainsKey(areaIndex)) { areaTown[areaIndex].Add(vat); } else { areaTown.Add(areaIndex, new List <VArtifactTown> () { vat }); } }
public void LinkTownToArea(VArtifactTown vat) { int maxDistance = Mathf.CeilToInt((vat.MiddleRadius + TownAreaMaxDistance) * TownAreaMaxFactor); int minXIndex = (vat.PosCenter.x - maxDistance) >> LinkAreaIndex; int minYIndex = (vat.PosCenter.y - maxDistance) >> LinkAreaIndex; int maxXIndex = (vat.PosCenter.x + maxDistance) >> LinkAreaIndex; int maxYIndex = (vat.PosCenter.y + maxDistance) >> LinkAreaIndex; for (int i = minXIndex; i <= maxXIndex; i++) { for (int j = minYIndex; j <= maxYIndex; j++) { AddTownArea(new IntVector2(i, j), vat); } } }
public VArtifactTown GetNearestTown(IntVector2 pos, List <VArtifactTown> vatList) { float distance = 999999; VArtifactTown result = null; foreach (VArtifactTown vat in vatList) { float dist = vat.PosCenter.Distance(pos); if (dist < distance) { distance = dist; result = vat; } } return(result); }
public static bool IsContained(VArtifactTown townInfo) { for (int vaui = 0; vaui < townInfo.VAUnits.Count; vaui++) { List <IntVector2> chunkIndexList = LinkedChunkIndex(townInfo.VAUnits[vaui]); for (int i = 0; i < chunkIndexList.Count; i++) { IntVector2 chunkIndex = chunkIndexList[i]; if (VArtifactTownManager.Instance.TileContainsTown(chunkIndex)) { return(true); } } } return(false); }
public NativeLabel(VArtifactTown vat) { this.pos = vat.TransPos; this.type = vat.nativeType; townLabelType = TownLabelType.NativeCamp; if (type == NativeType.Puja) { name = PELocalization.GetString(8000737); //lz-2016.10.11 翻译【Puja Camp】 } else { name = PELocalization.GetString(8000736); //lz-2016.10.11 翻译【Paja Camp】 } allyId = vat.allyId; // name = PELocalization.GetString(VATownGenerator.Instance.GetAllyName(allyId)); allyColorId = vat.AllyColorId; PeMap.LabelMgr.Instance.Add(this); }
public void AddDetectedTown(VArtifactTown vat) { if (VArtifactTownManager.Instance.IsCaptured(vat.townId)) { return; } if (detectedTowns.Contains(vat.PosCenter)) { return; } detectedTowns.Add(vat.PosCenter); DetectedTown dt = new DetectedTown(vat); DTownsDict.Add(dt.PosCenter, dt); if (AddDetectedTownListener != null) { AddDetectedTownListener(dt.PosCenter); } }
public static void AddNativeIcon(VArtifactTown vat) { if (vat != null) { if (vat.isEmpty) { return; } if (!NativeLabel.ContainsIcon(vat.TransPos)) { UnknownLabel.Remove(vat.TransPos); NativeLabel nl = new NativeLabel(vat); if (!nativeCampLabel.ContainsKey(nl.pos)) { nativeCampLabel.Add(nl.pos, nl); } } } }
//public static void AddTownIconList(List<Vector3> posList) //{ // if (posList != null && posList.Count > 0) // { // foreach (Vector3 pos in posList) // { // NpcTownLabel tl = new NpcTownLabel(pos); // } // } //} //public static void AddTownIconList(Vector3[] posList) //{ // if (posList != null && posList.Length > 0) // { // foreach (Vector3 pos in posList) // { // NpcTownLabel tl = new NpcTownLabel(pos); // } // } //} public static void AddTownIcon(VArtifactTown vat) { if (vat != null) { if (vat.isEmpty) { return; } if (!NpcTownLabel.ContainsIcon(vat.TransPos)) { UnknownLabel.Remove(vat.TransPos); NpcTownLabel tl = new NpcTownLabel(vat); if (!npcTownLabel.ContainsKey(tl.pos)) { npcTownLabel.Add(tl.pos, tl); } } } }
public static void AddDestroyedTownIcon(VArtifactTown vat) { if (vat != null) { if (vat.isEmpty) { return; } if (!DestroyedLabel.ContainsIcon(vat.TransPos)) { UnknownLabel.Remove(vat.TransPos); DestroyedLabel dl = new DestroyedLabel(vat); if (!destroyedTownLabel.ContainsKey(dl.pos)) { destroyedTownLabel.Add(dl.pos, dl); } } } }
public static DynamicNative[] GetAllDynamicNativePoint(int townId, out List <Vector3> posList) { DynamicNative[] result = null; posList = new List <Vector3> (); if (VArtifactTownManager.Instance != null) { VArtifactTown vat = VArtifactTownManager.Instance.GetTownByID(townId); if (vat != null) { if (vat.nativeTower != null) { result = vat.nativeTower.dynamicNatives; if (vat.VAUnits != null && vat.VAUnits.Count > 0) { VArtifactUnit vau = vat.VAUnits[0]; List <Vector3> posBeforRot = vau.npcPos; foreach (Vector3 p in posBeforRot) { posList.Add(GetPosAfterRotation(vau, p)); } } else { Debug.LogError("GetAllDynamicNativePoint: " + "vat.VAUnits==null||vat.VAUnits.Count=0"); } } else { Debug.LogError("GetAllDynamicNativePoint: " + "vat.nativeTower==null"); } } else { Debug.LogError("GetAllDynamicNativePoint: " + "vat==null"); } } else { Debug.LogError("GetAllDynamicNativePoint: " + "ArtifactTownManager.Instance==null"); } return(result); }
public void GenerateConnection(System.Random rand) { for (int i = 0; i < mainTownList.Count - 1; i++) { VArtifactTown thisTown = mainTownList[i]; VArtifactTown nextTown = mainTownList[i + 1]; AddTownConnection(thisTown.PosCenter, thisTown.PosEntrance, rand); if (nextTown.PosStart.y > thisTown.PosStart.y) { if (nextTown.PosCenter.x < thisTown.PosCenter.x) { AddTownConnection(thisTown.PosEntrance, thisTown.PosEntranceLeft, rand); AddTownConnection(thisTown.PosEntranceLeft, nextTown.PosEntrance, rand); } else { AddTownConnection(thisTown.PosEntrance, thisTown.PosEntranceRight, rand); AddTownConnection(thisTown.PosEntranceRight, nextTown.PosEntrance, rand); } } else { if (nextTown.PosCenter.x < thisTown.PosCenter.x) { AddTownConnection(thisTown.PosEntrance, nextTown.PosEntranceRight, rand); AddTownConnection(nextTown.PosEntranceRight, nextTown.PosEntrance, rand); } else { AddTownConnection(thisTown.PosEntrance, nextTown.PosEntranceLeft, rand); AddTownConnection(nextTown.PosEntranceLeft, nextTown.PosEntrance, rand); } } } if (mainTownList.Count > 1) { AddTownConnection(mainTownList[mainTownList.Count - 1].PosCenter, mainTownList[mainTownList.Count - 1].PosEntrance, rand); } }
public static bool GetTownPos(int townId, out Vector3 pos) { if (VArtifactTownManager.Instance == null) { pos = Vector3.zero; return(false); } else { VArtifactTown vat = VArtifactTownManager.Instance.GetTownByID(townId); if (vat == null) { pos = Vector3.zero; return(false); } else { pos = vat.TransPos; return(true); } } }
public static bool GetTownName(int townId, out string name) { if (VArtifactTownManager.Instance == null) { name = ""; return(false); } else { VArtifactTown vat = VArtifactTownManager.Instance.GetTownByID(townId); if (vat == null) { name = ""; return(false); } else { name = PELocalization.GetString(vat.townNameId); return(true); } } }
public static DynamicNativePoint GetDynamicNativePoint(int townId) { VArtifactTown vat = VArtifactTownManager.Instance.GetTownByID(townId); DynamicNativePoint result; DynamicNative[] dns = vat.nativeTower.dynamicNatives; System.Random randSeed = new System.Random(System.DateTime.Now.Millisecond); DynamicNative dn = dns[randSeed.Next(dns.Count())]; result.id = dn.did; result.type = dn.type; if (dn.type == 1) { result.point = GetDynamicNativeSinglePoint(vat, randSeed); } else { result.point = GetDynamicNativeGroupPoint(vat, randSeed); } return(result); }