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; }
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(); }
static void Postfix(RoomManager __instance) { WardManager.TriggerWardsNow("Pyrebound", 0, null); WardManager.TriggerWardsNow("Pyrebound", 1, null); WardManager.TriggerWardsNow("Pyrebound", 2, null); }