public static void Postfix(SimGameState __instance, ref List <SimGameMilestoneDef> ___milestones, ref List <string> ___ConsumedMilestones, ref List <string> ___contractDiscardPile, ref List <string> ___mapDiscardPile, ref List <string> ___ignoredContractEmployers, ref List <string> ___ignoredContractTargets, ref List <string> ___availableFlashpointList, ref Flashpoint ___activeFlashpoint, ref bool ___inFlashpointCooldown, ref int ___flashpointCooldownDays, ref bool ___needQueuedMilestoneCheck) { __instance.completedFlashpoints.Clear(); __instance.flashpointDiscardPile.Clear(); __instance.AlreadyClickedConversationResponses.Clear(); ___milestones.Clear(); ___ConsumedMilestones.Clear(); ___contractDiscardPile.Clear(); ___mapDiscardPile.Clear(); ___ignoredContractEmployers.Clear(); ___ignoredContractTargets.Clear(); ___availableFlashpointList.Clear(); ___activeFlashpoint = null; ___inFlashpointCooldown = false; ___flashpointCooldownDays = 0; ___needQueuedMilestoneCheck = false; }
private static void Postfix(SimGameState __instance, Flashpoint fp, FlashpointEndType howItEnded) { try { if (howItEnded == FlashpointEndType.Completed && fp.Def.Repeatable) { __instance.completedFlashpoints.Remove(fp.Def.Description.Id); } } catch (Exception e) { Logger.LogError(e); } }
public bool IsInActiveFlashpointContract() { if (IsSkirmish()) { return(false); } if (CurrentContract == null) { Main.Logger.LogError("[IsInActiveFlashpointContract] MC's CurrentContract is null. This is a possible mod conflict or a cascade error causing the CurrentContract never to be assigned in MC."); return(false); } Flashpoint activeFlashpoint = UnityGameInstance.BattleTechGame.Simulation.ActiveFlashpoint; return(activeFlashpoint?.ActiveContract?.encounterObjectGuid == this.CurrentContract.encounterObjectGuid); }
static void Postfix(SGNavigationScreen __instance, Flashpoint flashpoint, ref StarmapSystemRenderer __result) { if (flashpoint.CurStatus == Flashpoint.Status.AVAILABLE || flashpoint.CurStatus == Flashpoint.Status.SELECTED_ENROUTE) { GameObject prefab = null; if (flashpoint.Def.isHeavyMetalCampaign) { if (__result.flashpointMiniCampaignLocal != null) { prefab = __result.flashpointMiniCampaignLocal; } } else { if (__result.flashpointAvailableLocal != null) { prefab = __result.flashpointAvailableLocal; } } if (prefab != null) { FpMarker marker = FlashPointController.Instance.findMarker(flashpoint.Def.Description.Id); if (marker != null && marker.swapColour) { foreach (ParticleSystem componentsInChild in prefab.GetComponentsInChildren <ParticleSystem>()) { //Main.modLog.LogMessage(" " + componentsInChild.name + ": pr"); var main = componentsInChild.main; var colorGrad = main.startColor; Color color = marker.GetColor(componentsInChild.name, colorGrad.colorMax.a); colorGrad.colorMax = color; main.startColor = colorGrad; } } } } }
public static GameObject CreateMarker(Flashpoint.Room field, Flashpoint.Marker type, int id = -1) { GameObject marker; GameObject markerPrefab = Resources.Load("Prefabs/Map/Marker") as GameObject; marker = GameObject.Instantiate(markerPrefab, field.Position, markerPrefab.transform.rotation) as GameObject; Vector3 offset; Debug.Log("tworze " + type.ToString() + " x:" + field.Row / 2 + " y:" + field.Column / 2 + " field:" + field.Position); string texturePath = "Img/Tokens/"; switch(type) { case Flashpoint.Marker.Fire: offset = new Vector3(0F, 0F, 0.33F); marker.transform.position += offset; if (field.OnField[type] == 2) { texturePath += "Fire"; } else { texturePath += "Smoke"; } break; case Flashpoint.Marker.Ignition: offset = new Vector3(0.33F, 0F, 0.33F); marker.transform.position += offset; texturePath += "Flashpoint"; break; case Flashpoint.Marker.Hazard: offset = new Vector3(-0.33F, 0F, 0.33F); marker.transform.position += offset; texturePath += "Danger"; break; case Flashpoint.Marker.UncoveredPoi: offset = new Vector3(-0.33F, 0F, -0.33F); marker.transform.position += offset; texturePath += "Victim_Unknown"; break; case Flashpoint.Marker.Victim: offset = new Vector3(-0.33F, 0F, -0.33F); marker.transform.position += offset; texturePath += "Victim"; break; case Flashpoint.Marker.FalseAlarm: offset = new Vector3(-0.33F, 0F, -0.33F); marker.transform.position += offset; texturePath += "Victim_None"; break; case Flashpoint.Marker.Firefighter: offset = new Vector3(0F , 0F , -0.33F); texturePath += "fireman"; if (Flashpoint.GameValues.CurrentFF != null && id == Flashpoint.GameValues.CurrentFF.ID) { offset = new Vector3(0F, 0F, 0F); texturePath += "_active"; } marker.transform.position += offset; break; default: break; } marker.GetComponent<Renderer>().material.mainTexture = Resources.Load(texturePath) as Texture; indeksowanie index = marker.AddComponent<indeksowanie>(); if (index != null) { index.IndexX = field.Row/2; index.IndexY = field.Column/2; index.Type = type.ToString(); } ArrayList markersAtSameField = markerWithIndex (field.Row/2,field.Column/2,type.ToString()); int count = markersAtSameField.Count; if (count > 1) { foreach(GameObject mark in markersAtSameField){ var text = mark.GetComponentInChildren<TextMesh>(); text.text = count+""; } } return marker; }
public static void RemoveMarker(Flashpoint.Room field, Flashpoint.MarkerObject marker) { if(marker.Type == Flashpoint.Marker.Fire) { if(field.OnField[marker.Type] == 1) { marker.Object.GetComponent<Renderer>().material.mainTexture = Resources.Load("Img/Tokens/Smoke") as Texture; return; } else if(field.OnField[marker.Type] == 2) { marker.Object.GetComponent<Renderer>().material.mainTexture = Resources.Load("Img/Tokens/Fire") as Texture; return; } else if(field.OnField[marker.Type] == 0) { if(field.HasIgnition){ marker.Object.GetComponent<Renderer>().material.mainTexture = Resources.Load("Img/Tokens/Flashpoint") as Texture; return; } } } ArrayList markersAtSameField = markerWithIndex (field.Row/2,field.Column/2,marker.Type.ToString()); int count = markersAtSameField.Count; if (count > 1) { foreach(GameObject mark in markersAtSameField){ var text = mark.GetComponentInChildren<TextMesh>(); text.text = count+""; } } GameObject.Destroy(marker.Object); }
public static void GenerateMap(Flashpoint.Map map, int width, int height, float distance) { _distance = distance; _height = height; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { Vector3 position = new Vector3(0F + distance * i, 0F, distance*height - distance * j); CreateMapTile(position, j, i); Flashpoint.Room room = ((Flashpoint.Room)map.Field(j * 2, i * 2)); room.Position = position; if(i < width -1 ) { Flashpoint.Field onTheLeft = map.Field(j * 2, i * 2 + 1); if(onTheLeft != null && onTheLeft.GetFieldType() == Flashpoint.FieldType.Door) { (onTheLeft as Flashpoint.Door).Object = CreateDoor(j, i, j, i + 1); } } if(j < height -1) { Flashpoint.Field below = map.Field(j * 2 + 1, i * 2); if (below != null && below.GetFieldType() == Flashpoint.FieldType.Door) { (below as Flashpoint.Door).Object = CreateDoor(j, i, j + 1, i); } } } } }