This commit is contained in:
SoulliesOfficial
2025-10-24 09:11:22 -04:00
parent 61a397dd4c
commit 76157e3cb1
329 changed files with 8609 additions and 4549 deletions

View File

@@ -0,0 +1,39 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using Continentis.Mods.Basic.Buffs;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Bludgeon : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList, ExecutionMode.Sequential, ExecutionMode.Parallel,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.1f, target =>
{
user.Attack(target, GetFinalDamage(target));
Weak buff = new Weak(GetAttribute("WeaknessLayer"));
buff.Apply(target, user, this);
}));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Strike();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 73f5de9cd3455fd4881b542c09dfe49e

View File

@@ -0,0 +1,43 @@
using System.Collections.Generic;
using System.Linq;
using Continentis.MainGame;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Cohesion : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_SelectHandCards>().SetCondition(SelectCondition).SetEffect(SelectEffect);
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Sequential);
mainGroup.AddCommand(new Cmd_PlayAnimation(user.characterView, "Skill"));
LogicComponent<CardLogicComponent_SelectHandCards>()
.AddSelectionCommands(ref mainGroup, "Card_Basic_Cohesion_SelectionCommandTitle".Localize(), 1);
return mainGroup;
}
private bool SelectCondition(CardInstance card)
{
CardType type = card.cardLogic.contentSubmodule.cardType;
return type != CardType.Status && type != CardType.Curse;
}
private void SelectEffect(CardInstance card)
{
card.cardLogic.ModifyAttribute("StaminaCost", -1);
card.cardLogic.contentSubmodule.originalFunctionText += " + $Keyword(\"Retain\")";
CardTextInterpreter.InterpretText(card.cardLogic, true);
card.handCardView.Setup();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: adc6d9bd5de22494f8ee53710ffef561

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Continentis.MainGame;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class CommonHolyWater : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_SelectHandCards>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Sequential);
mainGroup.AddCommand(new Cmd_PlayAnimation(user.characterView, "Skill"));
LogicComponent<CardLogicComponent_SelectHandCards>().AddSelectionCommands(ref mainGroup, "Select at most 3 Status or Curse cards to be exhausted.", 3);
return mainGroup;
}
public bool SelectCondition(CardInstance card)
{
CardType type = card.cardLogic.contentSubmodule.cardType;
return type == CardType.Status || type == CardType.Curse;
}
public void SelectEffect(CardInstance card)
{
card.deck.ExhaustCard(card);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 88547d53279f48e42bad2ac4f007d2fa

View File

@@ -0,0 +1,10 @@
using Continentis.MainGame.Card;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Dazed : CardLogicBase
{
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9b9609731e401b040bb0412ff708705e

View File

@@ -7,7 +7,7 @@ using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Basic_Defense : CardLogicBase
public class Defense : CardLogicBase
{
protected override void SetUpLogicComponents()
{

View File

@@ -0,0 +1,39 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class DualStrike : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList, ExecutionMode.Sequential, ExecutionMode.Sequential,
new CommandGroup(ExecutionMode.Parallel,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(target => user.Attack(target, GetFinalDamage(target)))
),
new CommandGroup(ExecutionMode.Parallel,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(target => user.Attack(target, GetFinalDamage(target)))
));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Strike();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: fc0701f3ead1f4b4d8cb95d1dc3000cd

View File

@@ -0,0 +1,19 @@
using Continentis.MainGame;
using Continentis.MainGame.Card;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Faint : CardLogicBase
{
public override void Initialize()
{
base.Initialize();
eventSubmodule.onDraw.Add("Basic_Faint", new EventUnit(() =>
{
user.ModifyStamina(-1);
}));
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 94d8bf189543ff843861d7cc125d4e61

View File

@@ -0,0 +1,40 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class FightingInspiration : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_GenerateCards>().SetFilter(CardFilter);
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Sequential);
mainGroup.AddCommand(new Cmd_PlayAnimation(user.characterView, "Skill"));
mainGroup.AddCommand(new Cmd_Function(() =>
{
List<CardData> filtered = LogicComponent<CardLogicComponent_GenerateCards>().GetFilteredGlobalCardData();
if(filtered.TryGetRandom(out CardData cardData))
{
CardInstance.GenerateCardInstance(cardData, user, "Hand").GenerateHandCardView("Hand");
}
}));
return mainGroup;
}
private bool CardFilter(CardData cardData)
{
return cardData.cardType == CardType.Attack && cardData.HasTag("Physics");
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 60098667822ce4e4a9fb012224bdb4b9

View File

@@ -0,0 +1,38 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using Continentis.Mods.Basic.Buffs;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class FireBolt : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.2f, target =>
{
user.Attack(target, GetFinalDamage(target));
new Burn(GetAttribute("BuffLayer_Burn")).Apply(target, user, this);
}));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Arcane();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 55e7b0446c18b6b4d93b7fa996668cae

View File

@@ -0,0 +1,33 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class HiddenBlade : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.2f, target => user.Attack(target, GetFinalDamage(target))));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Prick();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: cfdff88eb7ad3d541882028d28cc8f3b

View File

@@ -0,0 +1,34 @@
using System.Collections.Generic;
using System.Linq;
using Continentis.MainGame;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class HolyWaterPreparation : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_GenerateCards>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Sequential);
mainGroup.AddCommand(new Cmd_PlayAnimation(user.characterView, "Skill"));
mainGroup.AddCommand(new Cmd_Function(() =>
{
CardData holyWaterCardData = LogicComponent<CardLogicComponent_GenerateCards>().GetDerivativeCardData(0);
CardInstance.GenerateCardInstance(holyWaterCardData, user.team, "Hand");
}));
return mainGroup;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 632f8f2d60cc80445ab8eba3d814e707

View File

@@ -7,7 +7,7 @@ using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Basic_MudBarrier : CardLogicBase
public class MudBarrier : CardLogicBase
{
protected override void SetUpLogicComponents()
{

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using Continentis.MainGame;
using Continentis.MainGame.Card;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public partial class Oblivion : CardLogicBase
{
public override void Initialize()
{
base.Initialize();
eventSubmodule.onActionEnd.Add("Basic_Oblivion_ExhaustCard", new EventUnit(() =>
{
List<CardInstance> handPile = user.deckSubmodule.HandPile;
if (handPile.Contains(cardInstance))
{
if (handPile.Filtered(CardFilter).TryGetRandom(out CardInstance randomCard))
{
user.deckSubmodule.ExhaustCard(randomCard);
}
}
}));
}
}
public partial class Oblivion
{
private static bool CardFilter(CardInstance card)
{
return card.cardLogic.contentSubmodule.cardType is not CardType.Status and not CardType.Curse;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 73de7395bf52deb4bac9a47946509313

View File

@@ -0,0 +1,33 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Prick : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.1f, target => user.Attack(target, GetFinalDamage(target))));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Prick();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 88242ad6bd2d2c7408e3c6980672e482

View File

@@ -0,0 +1,38 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using Continentis.Mods.Basic.Buffs;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class RadiantBolt : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.2f, target =>
{
user.Attack(target, GetFinalDamage(target));
new Blind(GetAttribute("BuffLayer_Blind")).Apply(target, user, this);
}));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Arcane();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0e8cd93ace3239544ad588aec99b1985

View File

@@ -0,0 +1,34 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class RayOfFrost : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.2f, target => user.Attack(target, GetFinalDamage(target))));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Arcane();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c88ec1e210cd76e41952f3d0918f66c9

View File

@@ -0,0 +1,33 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class RecklessAssault : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.1f, target => user.Attack(target, GetFinalDamage(target))));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Prick();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 75cb7730f126b3b4aa01bdbf65f22e9b

View File

@@ -0,0 +1,33 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Recollection : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_SelectCustomCards>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Sequential);
List<CardInstance> discardedCards = user.deckSubmodule.DiscardPile;
mainGroup.AddCommand(new Cmd_PlayAnimation(user.characterView, "Skill"));
LogicComponent<CardLogicComponent_SelectCustomCards>()
.AddSelectionCommands(ref mainGroup, discardedCards, "Select a non-status or non-curse card.", 1);
return mainGroup;
}
public void SelectEffect(CardInstance card)
{
CommandQueueManager.Instance.AddCommand(new Cmd_DrawCards(owner.deckSubmodule, new List<CardInstance>() { card }, 0.1f));
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: e9f44054ba6afc243aa3792048dfa04e

View File

@@ -0,0 +1,33 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Slash : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(target => user.Attack(target, GetFinalDamage(target))));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Slash();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: be6cca88ebf944f40a885d9359cd7d91

View File

@@ -0,0 +1,34 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using SLSFramework.UModAssistance;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class Strike : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_PlaySFX("SFX_Basic_SwordStrike"),
new Cmd_SpawnVFX("VFX_Basic_RedImpact"),
new Cmd_ParamFunction<CharacterBase>(target => user.Attack(target, GetFinalDamage(target))));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Strike();
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 421bde5f4c6c60a40ad42a7456250b44

View File

@@ -0,0 +1,21 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using Continentis.Mods.Basic.Buffs;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class ThinkingCountermeasures : CardLogicBase
{
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Sequential,
user.deckSubmodule.DrawCards(GetAttribute("DrawCardAmount")));
return mainGroup;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 184bd3b742eb0d14faa3ce20231bb5cc

View File

@@ -0,0 +1,48 @@
using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class WindBlade : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override CommandBase PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.2f, target => user.Attack(target, GetFinalDamage(target))));
return mainGroup;
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Arcane();
}
public override int GetFinalDamage(CharacterBase target, List<string> elementalTags = null)
{
float baseDamageFromSuppress = 0;
if (target is CombatNPC npc && user.IsOpponent(npc))
{
baseDamageFromSuppress = npc.actionCountThisRound == 0 ? 4f : 0f;
}
base.GetFinalDamage(target, elementalTags, out float baseDamageAfterOffset, out float elementalAmplifier, out float magicAmplifier, out float finalAmplifier);
float finalDamage = (baseDamageAfterOffset + baseDamageFromSuppress) * elementalAmplifier * magicAmplifier * finalAmplifier;
return Mathf.RoundToInt(finalDamage);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 32451d5a5937a5941b911650400b16ad