AmbushStance

This commit is contained in:
FrazeRIP
2025-11-10 23:56:25 -06:00
parent b8f3e47edf
commit 01f4f3c76d
12 changed files with 181 additions and 35 deletions

View File

@@ -43,7 +43,7 @@ MonoBehaviour:
Value: 5
index: 3
isKeyDuplicated: 0
- Key: BuffStack_Sharpness
- Key: BuffStack
Value: 5
index: 4
isKeyDuplicated: 0

View File

@@ -39,7 +39,7 @@ MonoBehaviour:
Value: 0
index: 2
isKeyDuplicated: 0
- Key: BuffStack_KnifeTrick
- Key: BuffStack
Value: 4
index: 3
isKeyDuplicated: 0

View File

@@ -1,5 +1,6 @@
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using System.Collections.Generic;
@@ -9,7 +10,12 @@ namespace Continentis.Mods.Basic.Cards
{
protected override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
{
return base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_ParamFunction<CharacterBase>(0.05f, target =>
{
CreateCharacterBuff<Buffs.AmbushStance>(GetAttribute("BuffStack")).Apply(target, user, this);
}));
return new List<CommandBase> { mainGroup };
}
}
}

View File

@@ -26,7 +26,7 @@ namespace Continentis.Mods.Basic.Cards
}));
mainGroup.AddCommand(new Cmd_Function(() =>
{
CreateCharacterBuff<Sharpness>(GetAttribute("BuffStack_Sharpness")).Apply(user, user, this);
CreateCharacterBuff<Sharpness>(GetAttribute("BuffStack")).Apply(user, user, this);
}));
return new List<CommandBase> { mainGroup };
}

View File

@@ -14,7 +14,7 @@ namespace Continentis.Mods.Basic.Cards
new Cmd_PlayAnimation(user.characterView, "Skill"),
new Cmd_Function(() =>
{
CreateCharacterBuff<Buffs.KnifeTrick>(GetAttribute("BuffStack_KnifeTrick")).Apply(user, user, this);
CreateCharacterBuff<Buffs.KnifeTrick>(GetAttribute("BuffStack")).Apply(user, user, this);
}));
return new List<CommandBase> { mainGroup };

View File

@@ -0,0 +1,42 @@
using Continentis.MainGame;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using SLSFramework.General;
using System.Collections.Generic;
using static UnityEngine.GraphicsBuffer;
namespace Continentis.Mods.Basic.Buffs
{
public class AmbushStance : CharacterCombatBuffBase
{
public AmbushStance(int stack)
{
Initialize(BuffType.Positive, BuffDispelLevel.Strong);
this.contentSubmodule = new ContentSubmodule(this, false)
.AddParameterGetter("Stack", () => unitedStackSubmodule.stackAmount.ToString());
this.iconSubmodule = new IconSubmodule(this);
this.unitedStackSubmodule = new UnitedStackSubmodule(this, stack);
this.eventSubmodule = new EventSubmodule(this);
this.eventSubmodule.onBeforePlayCard.Add("AmbushStance", new PrioritizedAction<CardInstance, List<CharacterBase>>(((card, targets) =>
{
if (this.attachedCharacter is PlayerHero player)
{
CreateCharacterBuff<Buffs.Sharpness>(this.unitedStackSubmodule.stackAmount).Apply(attachedCharacter, attachedCharacter);
}
})));
}
public override bool OnBuffApply(out CharacterCombatBuffBase existingBuff)
{
MainGameManager.Instance.basePrefabs.GenerateInfoText("Ambush Stance", attachedCharacter.characterView);
if (FindExistingSameBuff(out existingBuff))
{
existingBuff.unitedStackSubmodule.ModifyStack(this.unitedStackSubmodule.stackAmount);
int newStack = existingBuff.unitedStackSubmodule.stackAmount;
existingBuff.coreAttributeSubmodule.numericChange["DodgeChanceOffset"] = newStack;
return false;
}
return true;
}
}
}

View File

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

View File

@@ -1,18 +1,12 @@
using Continentis.MainGame;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.Mods.Basic.Buffs;
using SLSFramework.General;
using System.Collections.Generic;
using SLSFramework.UModAssistance;
using UnityEngine;
namespace Continentis.Mods.Basic.Buffs
{
public class KnifeTrick : CharacterCombatBuffBase
{
private bool _canTrigger = false;
public KnifeTrick(int stack)
{
Initialize(BuffType.Positive, BuffDispelLevel.Strong);
@@ -21,7 +15,7 @@ namespace Continentis.Mods.Basic.Buffs
this.iconSubmodule = new IconSubmodule(this);
this.unitedStackSubmodule = new UnitedStackSubmodule(this, stack);
this.eventSubmodule = new EventSubmodule(this);
this.eventSubmodule.onOtherBuffRemoved.Add("KnifeTrick_AddSharpness", new PrioritizedAction<BuffBase<CharacterBase>>((buff) =>
{
if (buff is Sharpness)
@@ -31,25 +25,6 @@ namespace Continentis.Mods.Basic.Buffs
CreateCharacterBuff<Sharpness>(unitedStackSubmodule.stackAmount).Apply(attachedCharacter, attachedCharacter);
}
}));
//TODO: Event listener for adding/removing buffs
//this.eventSubmodule.onPreAttack.Add("KnifeTrick", new PrioritizedAction<int>((damage) =>
//{
// if (this.attachedCharacter.combatBuffSubmodule.HasBuff<Sharpness>())
// {
// _canTrigger = true;
// }
//}));
//this.eventSubmodule.onDealAttack.Add("KnifeTrick", new PrioritizedAction<AttackResult>((result) =>
//{
// if (_canTrigger)
// {
// CreateCharacterBuff<Sharpness>(this.unitedStackSubmodule.stackAmount).Apply(this.attachedCharacter, this.attachedCharacter);
// _canTrigger = false;
// }
//}));
}
public override bool OnBuffApply(out CharacterCombatBuffBase existingBuff)

View File

@@ -5,3 +5,5 @@ Buff_Basic_Sharpness_DisplayName,Sharpness,锋利,,,,,
Buff_Basic_Sharpness_FunctionText,TODO,下次攻击将造成额外$ParameterInt("Stack")点伤害并失去所有层数。,,,,,
Buff_Basic_KnifeTrick_DisplayName,Knife Trick,刀具把戏,,,,,
Buff_Basic_KnifeTrick_FunctionText,TODO,每次失去所有$Keyword("Basic_Sharpness")后,获得$ParameterInt("Stack")层$Keyword("Basic_Sharpness")。,,,,,
Buff_Basic_AmbushStance_DisplayName,Ambush Stance,伺机待发,,,,,
Buff_Basic_AmbushStance_FunctionText,TODO,每当你打出一张牌,获得$ParameterInt("Stack")层$Keyword("Basic_Sharpness")。,,,,,
Can't render this file because it contains an unexpected character in line 3 and column 84.

View File

@@ -13,10 +13,10 @@ Card_Basic_KnifeTrick_DisplayName,Knife Trick,刀具把戏,,,,,
Card_Basic_KnifeTrick_FunctionText,Test Description,每次失去所有$Keyword("Basic_Sharpness")后,获得$Attribute("BuffStack")层$Keyword("Basic_Sharpness")。,,,,,
Card_Basic_ExtremePain_DisplayName,Extreme Pain,极端痛苦,,,,,
Card_Basic_ExtremePain_FunctionText,Test Description,造成$Attribute("Damage")点伤害,目标额外受到$Keyword("Basic_Corrosion")层数点伤害。,,,,,
Card_Basic_BladeOfFear_DisplayName,Blade of Fear,怖刃TODO,,,,,
Card_Basic_BladeOfFear_FunctionText,Test Description,TODO,,,,,
Card_Basic_AmbushStance_DisplayName,Ambush Stance,伺机待发TODO,,,,,
Card_Basic_AmbushStance_FunctionText,Test Description,TODO,,,,,
Card_Basic_BladeOfFear_DisplayName,Blade of Fear,怖刃,,,,,
Card_Basic_BladeOfFear_FunctionText,Test Description,造成$Attribute("Damage")点伤害。\n获得$Attribute("BuffStack")层$Keyword("Basic_Sharpness")。,,,,,
Card_Basic_AmbushStance_DisplayName,Ambush Stance,伺机待发,,,,,
Card_Basic_AmbushStance_FunctionText,Test Description,每当你打出一张牌,获得$Attribute("BuffStack")层$Keyword("Basic_Sharpness")。,,,,,
Card_Basic_Backstab_DisplayName,Backstab,背刺TODO,,,,,
Card_Basic_Backstab_FunctionText,Test Description,TODO,,,,,
Card_Basic_FlashTerror_DisplayName,FlashTerror,快速威吓TODO,,,,,
Can't render this file because it contains an unexpected character in line 3 and column 64.

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 KiB

View File

@@ -0,0 +1,119 @@
fileFormatVersion: 2
guid: 0b37c9cae0000dc4c8fb905f8af16351
labels:
- UnityAI
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1024
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant: