Esempio n. 1
0
        public override IEnumerator ApplyEffect(
            CardEffectState cardEffectState,
            CardEffectParams cardEffectParams)
        {
            if (cardEffectState.SaveManager.PreviewMode)
            {
                yield break;
            }

            int       paramInt = cardEffectState.GetParamInt();
            string    wardType = cardEffectState.GetParamStr();
            WardState wardState;

            switch (wardType)
            {
            case "WardStateShifter":
                wardState       = new WardStateShifter();
                wardState.power = paramInt;
                break;

            case "WardStatePower":
                wardState       = new WardStatePower();
                wardState.power = paramInt;
                break;

            case "WardStatePyrebound":
                wardState       = new WardStatePyrebound();
                wardState.power = paramInt;
                break;

            case "WardStatePyreHarvest":
                wardState       = new WardStatePyreHarvest();
                wardState.power = paramInt;
                break;

            case "WardStateRandomDamage":
                wardState       = new WardStateRandomDamage();
                wardState.power = paramInt;
                break;

            default:
                yield break;
            }

            int roomIndex = cardEffectParams.selectedRoom;

            if (cardEffectState.GetParamBool())
            {
                WardManager.AddWardLater(wardState, roomIndex);
                yield break;
            }

            WardManager.AddWard(wardState, roomIndex);
            yield break;
        }
Esempio n. 2
0
        static IEnumerator Postfix(IEnumerator __result, CombatManager __instance, RoomState room)
        {
            ProviderManager.TryGetProvider <RoomManager>(out RoomManager roomManager);

            List <CharacterState> targets = new List <CharacterState>();

            room.AddCharactersToList(targets, Team.Type.Heroes);

            yield return(WardManager.TriggerWards("RandomDamage", room.GetRoomIndex(), targets));

            yield return(__result);
        }
 static IEnumerator Postfix(IEnumerator __result, CharacterState __instance, CardState damageSourceCard, CharacterState attacker)
 {
     if (!__instance.IsDead || ProviderManager.SaveManager.PreviewMode)
     {
         yield break;
     }
     if (__instance.GetSpawnPoint() != null && __instance.GetSpawnPoint().GetRoomOwner() != null)
     {
         yield return(WardManager.TriggerWards("PyreHarvest", __instance.GetCurrentRoomIndex()));
     }
     yield return(__result);
 }
        public void SetupWardIcons(int floor)
        {
            // Destroy children
            foreach (Transform child in transform)
            {
                Destroy(child.gameObject);
            }

            // Now we recreate children based on the floor
            int i = 0;

            foreach (WardState ward in WardManager.GetWards(floor))
            {
                // Create a new GameObject
                GameObject icon = UnityEngine.Object.Instantiate(WardManager.prefab, Vector3.zero, Quaternion.identity, base.transform).gameObject;
                GameObject.Destroy(icon.GetComponent <RoomCapacityObject>());
                foreach (Transform child in icon.transform)
                {
                    Destroy(child.gameObject);
                }

                // Set the image
                Image iconImage = icon.GetComponent <Image>();
                iconImage.sprite = ward.wardIcon;

                // Set the Image Offset
                icon.transform.localPosition = Vector3.zero;

                RectTransform component = icon.GetComponent <RectTransform>();
                Vector2       offsetMax = component.offsetMax;
                offsetMax.x         = GetContainerWidth(i);
                component.offsetMax = offsetMax;
                component.sizeDelta = new Vector2 {
                    x = 48, y = 82
                };
                i++;

                // Add the tooltip
                var tooltip = icon.AddComponent <LocalizedTooltipProvider>();
                var t       = Traverse.Create(tooltip);
                t.Field("tooltipTitleKey").SetValue(ward.tooltipTitleKey);
                t.Field("tooltipBodyKey").SetValue(ward.tooltipBodyKey);
                icon.AddComponent <GameUISelectable>();
            }
        }
 static void Postfix(RoomUI __instance)
 {
     WardManager.SetupUI();
 }
 static void Postfix(RoomManager __instance)
 {
     WardManager.ResetWards();
 }
Esempio n. 7
0
 static void Postfix(RoomManager __instance)
 {
     WardManager.TriggerWardsNow("Pyrebound", 0, null);
     WardManager.TriggerWardsNow("Pyrebound", 1, null);
     WardManager.TriggerWardsNow("Pyrebound", 2, null);
 }