diff --git a/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_BladeOfFear.asset b/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_BladeOfFear.asset index 7b8f87ac..d926728c 100644 --- a/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_BladeOfFear.asset +++ b/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_BladeOfFear.asset @@ -43,7 +43,7 @@ MonoBehaviour: Value: 5 index: 3 isKeyDuplicated: 0 - - Key: BuffStack_Sharpness + - Key: BuffStack Value: 5 index: 4 isKeyDuplicated: 0 diff --git a/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_KnifeTrick.asset b/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_KnifeTrick.asset index 49234454..5a5b507f 100644 --- a/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_KnifeTrick.asset +++ b/Assets/Mods/Basic/Cards/Data/PlayerHeros/Assassin/CardData_Basic_KnifeTrick.asset @@ -39,7 +39,7 @@ MonoBehaviour: Value: 0 index: 2 isKeyDuplicated: 0 - - Key: BuffStack_KnifeTrick + - Key: BuffStack Value: 4 index: 3 isKeyDuplicated: 0 diff --git a/Assets/Mods/Basic/Cards/Scripts/Assassin/AmbushStance.cs b/Assets/Mods/Basic/Cards/Scripts/Assassin/AmbushStance.cs index dd2b0d74..93775b4c 100644 --- a/Assets/Mods/Basic/Cards/Scripts/Assassin/AmbushStance.cs +++ b/Assets/Mods/Basic/Cards/Scripts/Assassin/AmbushStance.cs @@ -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 PlayEffect(List targetList) { - return base.PlayEffect(targetList); + CommandGroup mainGroup = TargetListCommandGroup(targetList, + new Cmd_ParamFunction(0.05f, target => + { + CreateCharacterBuff(GetAttribute("BuffStack")).Apply(target, user, this); + })); + return new List { mainGroup }; } } } diff --git a/Assets/Mods/Basic/Cards/Scripts/Assassin/BladeOfFear.cs b/Assets/Mods/Basic/Cards/Scripts/Assassin/BladeOfFear.cs index aac978b7..c2f7f5a8 100644 --- a/Assets/Mods/Basic/Cards/Scripts/Assassin/BladeOfFear.cs +++ b/Assets/Mods/Basic/Cards/Scripts/Assassin/BladeOfFear.cs @@ -26,7 +26,7 @@ namespace Continentis.Mods.Basic.Cards })); mainGroup.AddCommand(new Cmd_Function(() => { - CreateCharacterBuff(GetAttribute("BuffStack_Sharpness")).Apply(user, user, this); + CreateCharacterBuff(GetAttribute("BuffStack")).Apply(user, user, this); })); return new List { mainGroup }; } diff --git a/Assets/Mods/Basic/Cards/Scripts/Assassin/KnifeTrick.cs b/Assets/Mods/Basic/Cards/Scripts/Assassin/KnifeTrick.cs index 1dd5e6c5..6a541e51 100644 --- a/Assets/Mods/Basic/Cards/Scripts/Assassin/KnifeTrick.cs +++ b/Assets/Mods/Basic/Cards/Scripts/Assassin/KnifeTrick.cs @@ -14,7 +14,7 @@ namespace Continentis.Mods.Basic.Cards new Cmd_PlayAnimation(user.characterView, "Skill"), new Cmd_Function(() => { - CreateCharacterBuff(GetAttribute("BuffStack_KnifeTrick")).Apply(user, user, this); + CreateCharacterBuff(GetAttribute("BuffStack")).Apply(user, user, this); })); return new List { mainGroup }; diff --git a/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/AmbushStance.cs b/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/AmbushStance.cs new file mode 100644 index 00000000..6c9cb1e8 --- /dev/null +++ b/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/AmbushStance.cs @@ -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>(((card, targets) => + { + if (this.attachedCharacter is PlayerHero player) + { + CreateCharacterBuff(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; + } + } +} diff --git a/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/AmbushStance.cs.meta b/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/AmbushStance.cs.meta new file mode 100644 index 00000000..459b32b2 --- /dev/null +++ b/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/AmbushStance.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ea92fd3a2cd5a524db12d16fad06ab7b \ No newline at end of file diff --git a/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/KnifeTrick.cs b/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/KnifeTrick.cs index 449e3dbb..cdf254a2 100644 --- a/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/KnifeTrick.cs +++ b/Assets/Mods/Basic/Characters/CombatBuffs/Assassin/KnifeTrick.cs @@ -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>((buff) => { if (buff is Sharpness) @@ -31,25 +25,6 @@ namespace Continentis.Mods.Basic.Buffs CreateCharacterBuff(unitedStackSubmodule.stackAmount).Apply(attachedCharacter, attachedCharacter); } })); - - //TODO: Event listener for adding/removing buffs - - //this.eventSubmodule.onPreAttack.Add("KnifeTrick", new PrioritizedAction((damage) => - //{ - // if (this.attachedCharacter.combatBuffSubmodule.HasBuff()) - // { - // _canTrigger = true; - // } - //})); - - //this.eventSubmodule.onDealAttack.Add("KnifeTrick", new PrioritizedAction((result) => - //{ - // if (_canTrigger) - // { - // CreateCharacterBuff(this.unitedStackSubmodule.stackAmount).Apply(this.attachedCharacter, this.attachedCharacter); - // _canTrigger = false; - // } - //})); } public override bool OnBuffApply(out CharacterCombatBuffBase existingBuff) diff --git a/Assets/Mods/Basic/Localization/Localization_Basic_AssassinBuffs.csv b/Assets/Mods/Basic/Localization/Localization_Basic_AssassinBuffs.csv index 4906789b..c8e436f2 100644 --- a/Assets/Mods/Basic/Localization/Localization_Basic_AssassinBuffs.csv +++ b/Assets/Mods/Basic/Localization/Localization_Basic_AssassinBuffs.csv @@ -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")。,,,,, diff --git a/Assets/Mods/Basic/Localization/Localization_Basic_AssassinCards.csv b/Assets/Mods/Basic/Localization/Localization_Basic_AssassinCards.csv index 3bdcf0e9..79ab19b2 100644 --- a/Assets/Mods/Basic/Localization/Localization_Basic_AssassinCards.csv +++ b/Assets/Mods/Basic/Localization/Localization_Basic_AssassinCards.csv @@ -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),,,,, diff --git a/Assets/Mods/Basic/Sprites/Buffs/BuffIcon_Basic_AmbushStance.png b/Assets/Mods/Basic/Sprites/Buffs/BuffIcon_Basic_AmbushStance.png new file mode 100644 index 00000000..33e3c855 Binary files /dev/null and b/Assets/Mods/Basic/Sprites/Buffs/BuffIcon_Basic_AmbushStance.png differ diff --git a/Assets/Mods/Basic/Sprites/Buffs/BuffIcon_Basic_AmbushStance.png.meta b/Assets/Mods/Basic/Sprites/Buffs/BuffIcon_Basic_AmbushStance.png.meta new file mode 100644 index 00000000..facb9a40 --- /dev/null +++ b/Assets/Mods/Basic/Sprites/Buffs/BuffIcon_Basic_AmbushStance.png.meta @@ -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: