This commit is contained in:
SoulliesOfficial
2025-11-14 01:40:00 -05:00
parent c09dae7783
commit 9a8eadef24
49 changed files with 245 additions and 190 deletions

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 72f87a610c81daa43b94c3663e973efa
guid: 6e5d85e43b11d0544be47b1b97d6c083
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8155160458c0f9f47807872413e96088
guid: a18ff060dd48a1f49a5eba17d132923f
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -13,17 +13,36 @@ MonoBehaviour:
m_Name: CardData_Basic_ArmyOfTheDead
m_EditorClassIdentifier: Assembly-CSharp::Continentis.MainGame.Card.CardData
modName: Basic
categoryName:
className: ArmyOfTheDead
displayName: Card_Basic_ArmyOfTheDead_DisplayName
cardRarity: 40
cardType: 10
tags: []
keywords:
- TargetSelf
cardSprite: {fileID: 21300000, guid: 38466aa09b7b3dc468a47c6ca7251524, type: 3}
cardLayoutTags: []
functionText: Card_Basic_ArmyOfTheDead_FunctionText
cardDescription: Spawn 2 Skeleton Guards.
cardDescription:
baseWeight: 1
variableAttributes:
dictionaryList: []
dictionaryList:
- Key: TargetCount
Value: 0
index: 0
isKeyDuplicated: 0
- Key: SummonCount
Value: 2
index: 1
isKeyDuplicated: 0
- Key: StaminaCost
Value: 2
index: 2
isKeyDuplicated: 0
- Key: ManaCost
Value: 0
index: 3
isKeyDuplicated: 0
dividerPosProp: 0.5
originalAttributes:
dictionaryList: []
@@ -40,4 +59,5 @@ MonoBehaviour:
customDescriptions: []
prefabRefs: []
derivativeCardDataRefs: []
derivativeCharacterDataRefs: []
derivativeCharacterDataRefs:
- CharacterData_Basic_SkeletonGuard

View File

@@ -10,21 +10,40 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9a4129cdd7011ca46b83d8c17d9f3623, type: 3}
m_Name: CardData_Basic_WrathOfTheUnderworld
m_Name: CardData_Basic_GreatswordSweep
m_EditorClassIdentifier:
modName: Basic
className: WrathOfTheUnderworld
displayName: Card_Basic_WrathOfTheUnderworld_DisplayName
cardRarity: 50
categoryName:
className: GreatswordSweep
displayName: Card_Basic_GreatswordSweep_DisplayName
cardRarity: 30
cardType: 0
tags: []
keywords:
- TargetEnemies
cardSprite: {fileID: 21300000, guid: 37468a98d6a5a824d880a27afec07d29, type: 3}
functionText: Card_Basic_WrathOfTheUnderworld_FunctionText
cardLayoutTags: []
functionText: Card_Basic_GreatswordSweep_FunctionText
cardDescription: '$Keyword("Sorcery"), $Keyword("LifeSteal"): $Attribute("LifeStealPercent",
true, true), deal $Attribute("Damage") darkness damage 3 times to all enemies.'
baseWeight: 99999
baseWeight: 0
variableAttributes:
dictionaryList: []
dictionaryList:
- Key: TargetCount
Value: -1
index: 0
isKeyDuplicated: 0
- Key: Damage
Value: 8
index: 1
isKeyDuplicated: 0
- Key: StaminaCost
Value: 2
index: 2
isKeyDuplicated: 0
- Key: ManaCost
Value: 0
index: 3
isKeyDuplicated: 0
dividerPosProp: 0.5
originalAttributes:
dictionaryList: []

View File

@@ -13,19 +13,41 @@ MonoBehaviour:
m_Name: CardData_Basic_HellfireBlast
m_EditorClassIdentifier:
modName: Basic
categoryName:
className: HellfireBlast
displayName: Card_Basic_HellfireBlast_DisplayName
cardRarity: 30
cardType: 0
tags: []
keywords:
- TargetEnemies
- Magic
cardSprite: {fileID: 21300000, guid: 1b371965578c19a4c934f642b8a7420e, type: 3}
cardLayoutTags: []
functionText: Card_Basic_HellfireBlast_FunctionText
cardDescription: '$Keyword("Strike"): Deal $Attribute("Damage") fire & physics
damage. $Keyword("Arcane"): Apply $Attribute("HellfireStack") stacks of Hellfire
to the target.'
cardDescription:
baseWeight: 1
variableAttributes:
dictionaryList: []
dictionaryList:
- Key: TargetCount
Value: 1
index: 0
isKeyDuplicated: 0
- Key: Damage
Value: 18
index: 1
isKeyDuplicated: 0
- Key: BuffStack_Burn
Value: 2
index: 2
isKeyDuplicated: 0
- Key: StaminaCost
Value: 2
index: 3
isKeyDuplicated: 0
- Key: ManaCost
Value: 0
index: 4
isKeyDuplicated: 0
dividerPosProp: 0.5
originalAttributes:
dictionaryList: []

View File

@@ -0,0 +1,63 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9a4129cdd7011ca46b83d8c17d9f3623, type: 3}
m_Name: CardData_Basic_WrathOfUnderworld
m_EditorClassIdentifier:
modName: Basic
categoryName:
className: WrathOfUnderworld
displayName: Card_Basic_WrathOfUnderworld_DisplayName
cardRarity: 50
cardType: 0
keywords:
- TargetEnemies
- Magic
cardSprite: {fileID: 21300000, guid: 1b371965578c19a4c934f642b8a7420e, type: 3}
cardLayoutTags: []
functionText: Card_Basic_WrathOfUnderworld_FunctionText
cardDescription:
baseWeight: 1
variableAttributes:
dictionaryList:
- Key: TargetCount
Value: 1
index: 0
isKeyDuplicated: 0
- Key: Damage
Value: 5
index: 1
isKeyDuplicated: 0
- Key: StaminaCost
Value: 2
index: 2
isKeyDuplicated: 0
- Key: ManaCost
Value: 0
index: 3
isKeyDuplicated: 0
dividerPosProp: 0.5
originalAttributes:
dictionaryList: []
dividerPosProp: 0.5
runtimeCurrentAttributes:
dictionaryList: []
dividerPosProp: 0.5
upgradeNode:
sourceCard: {fileID: 0}
isTerminalNode: 0
isInfiniteUpgrade: 0
maxUpgradeLevel: 0
upgradeCards: []
customDescriptions: []
prefabRefs: []
derivativeCardDataRefs: []
derivativeCharacterDataRefs: []

View File

@@ -1,8 +1,8 @@
fileFormatVersion: 2
guid: a7e6e890cbcf4f64d92166428b365bad
guid: 48406db0406bf2d4d851d2bccf85ea21
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bc26238c26933b845b4efec43ee942ce
guid: 6d003cedcc9e4d1428b63909b5f72798
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 53ad5c109a3d9244eb28840b69d3abbb
guid: d5624af2d49c1704e9ab5a65bc927398
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 407cb8d52d035514f94999dc568358ce
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -14,10 +14,14 @@ namespace Continentis.Mods.Basic.Cards
{
base.PlayEffect(targetList);
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Parallel, new Cmd_Function(() =>
CommandGroup mainGroup = new CommandGroup(new Cmd_Function(() =>
{
CharacterData minion = cardData.GetDerivativeCharacterData(0);
CombatMainManager.Instance.characterController.AddCombatNPCs((minion, Fraction.Enemy), (minion, Fraction.Enemy));
for (int i = 0; i < GetAttribute("SummonCount"); i++)
{
CombatMainManager.Instance.characterController.AddCombatNPC((minion, Fraction.Enemy));
}
}));
return new List<CommandBase> { mainGroup };

View File

@@ -0,0 +1,36 @@
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 GreatswordSweep : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
protected override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
{
CommandGroup mainGroup = new CommandGroup(new Cmd_PlayAnimation(user.characterView, "Attack"));
mainGroup.AddCommand(TargetListCommandGroup(targetList,
ExecutionMode.Parallel, ExecutionMode.Sequential,
new Cmd_ParamFunction<CharacterBase>(target =>
{
user.Attack(target, GetFinalDamage(target));
})));
return new List<CommandBase> { mainGroup };
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Slash();
}
}
}

View File

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

View File

@@ -14,27 +14,14 @@ namespace Continentis.Mods.Basic.Cards
{
AddLogicComponent<CardLogicComponent_Attack>();
}
public override void TargetingEffect(CharacterBase target)
{
SetAttribute("DisplayHellfireStack", GetAttribute("HellfireStack"));
}
public override void UntargetingEffect()
{
SetAttribute("DisplayHellfireStack", GetAttribute("HellfireStack"));
}
protected override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_ParamFunction<CharacterBase>(0.2f, target =>
{
user.Attack(target, GetFinalDamage(target));
Basic_Hellfire buff = new Basic_Hellfire(GetAttribute("HellfireStack"));
buff.Apply(target, user, this);
CreateCharacterBuff<Burn>(GetAttribute("BuffStack_Burn")).Apply(target, user, this);
}));
return new List<CommandBase> { mainGroup };
@@ -42,11 +29,7 @@ namespace Continentis.Mods.Basic.Cards
public override void ApplyAttributeChangesByCard()
{
int offsetFromStr = user.GetAttribute("OffsetFromStrength");
LogicComponent<CardLogicComponent_Attack>().SetDamage(offsetFromStr);
int offsetFromInt = user.GetAttribute("OffsetFromIntelligence");
SetVariableAttribute("HellfireStack", offsetFromInt);
LogicComponent<CardLogicComponent_Attack>().SetDamage_Strike();
}
}
}

View File

@@ -9,12 +9,11 @@ using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class WrathOfTheUnderworld : CardLogicBase
public class WrathOfUnderworld : CardLogicBase
{
protected override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
AddLogicComponent<CardLogicComponent_LifeSteal>();
}
protected override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
@@ -23,15 +22,14 @@ namespace Continentis.Mods.Basic.Cards
CommandGroup singleTargetGroup = new CommandGroup(ExecutionMode.Parallel,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.5f, target =>
new Cmd_ParamFunction<CharacterBase>(0.4f, target =>
{
int hurt = user.Attack(target, GetFinalDamage(target)).hurtDamage;
LogicComponent<CardLogicComponent_LifeSteal>().LifeSteal(hurt);
user.Attack(target, GetFinalDamage(target));
})
);
CommandGroup mainGroup = TargetListCommandGroup(targetList, ExecutionMode.Parallel, ExecutionMode.Sequential,
singleTargetGroup, singleTargetGroup, singleTargetGroup);
singleTargetGroup, singleTargetGroup, singleTargetGroup, singleTargetGroup, singleTargetGroup);
return new List<CommandBase> { mainGroup };
}

View File

@@ -52,6 +52,10 @@ MonoBehaviour:
Value: 24
index: 6
isKeyDuplicated: 0
- Key: DisableConversion
Value: 1
index: 7
isKeyDuplicated: 0
dividerPosProp: 0.5
generalAttributes:
dictionaryList:
@@ -116,7 +120,7 @@ MonoBehaviour:
index: 14
isKeyDuplicated: 0
- Key: MaximumStamina
Value: 2
Value: 4
index: 15
isKeyDuplicated: 0
- Key: MaximumMana
@@ -124,7 +128,7 @@ MonoBehaviour:
index: 16
isKeyDuplicated: 0
- Key: MaximumHealth
Value: 20
Value: 1000
index: 17
isKeyDuplicated: 0
- Key: BlockGainOffset

View File

@@ -1,137 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New Material
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &3060163818772001751
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version: 10

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5b8e6b6d54a1e37439a90f30567aeaeb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,16 @@
using UnityEngine;
public class MarshallOfUnderworld : MonoBehaviour
{
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}

View File

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

View File

@@ -69,7 +69,7 @@ namespace Continentis.MainGame.Combat
ModManager.CreateInstance<CharacterCombatBuffBase>("Basic.Buffs.Weak", 2).Apply(enemies[0]);
}
public void AddCombatNPCs(params (CharacterData, Fraction)[] dataList)
public void AddCombatNPC(params (CharacterData, Fraction)[] dataList)
{
foreach ((CharacterData, Fraction) npcData in dataList)
{

View File

@@ -18,6 +18,13 @@ namespace SLSFramework.General
/// </summary>
public readonly CommandContext groupContext;
public CommandGroup(params CommandBase[] commands)
{
this.mode = ExecutionMode.Sequential;
this.groupContext = new CommandContext();
this.commands.AddRange(commands);
}
public CommandGroup(ExecutionMode mode, params CommandBase[] commands)
{
this.mode = mode;