Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        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;
                        }
                    }
                }
            }
        }
Esempio n. 5
0
    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;
    }
Esempio n. 6
0
    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);
    }
Esempio n. 7
0
    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);
                    }
                }
            }
        }
    }