意图初步
This commit is contained in:
@@ -18,5 +18,4 @@ MonoBehaviour:
|
||||
- CharacterData_Basic_Assassin
|
||||
- CharacterData_Basic_Cleric
|
||||
enemyCharacters:
|
||||
- CharacterData_Basic_MarshalOfTheUnderworld
|
||||
- CharacterData_Basic_MarshalOfTheUnderworld
|
||||
- CharacterData_Basic_MarshalOfUnderworld
|
||||
|
||||
@@ -18,16 +18,17 @@ MonoBehaviour:
|
||||
- KeywordData_Basic_Buff_Assassin
|
||||
- KeywordData_Basic_Default
|
||||
cardDataIDList:
|
||||
- CardData_Basic_AblazeInPurgatory
|
||||
- CardData_Basic_HellfireBrand
|
||||
- CardData_Basic_SoulCleave
|
||||
- CardData_Basic_ArmyOfTheDead
|
||||
- CardData_Basic_GreatswordSweep
|
||||
- CardData_Basic_HellfireBlast
|
||||
- CardData_Basic_NecromanticInfusion
|
||||
- CardData_Basic_WrathOfUnderworld
|
||||
- CardData_Basic_Rouse
|
||||
- CardData_Basic_Tactic
|
||||
- CardData_Basic_Whimsy
|
||||
- CardData_Basic_AblazeInPurgatory
|
||||
- CardData_Basic_ArmyOfTheDead
|
||||
- CardData_Basic_HellfireBlast
|
||||
- CardData_Basic_HellfireBrand
|
||||
- CardData_Basic_NecromanticInfusion
|
||||
- CardData_Basic_SoulCleave
|
||||
- CardData_Basic_WrathOfTheUnderworld
|
||||
- CardData_Basic_Bludgeon
|
||||
- CardData_Basic_DualStrike
|
||||
- CardData_Basic_FireBolt
|
||||
@@ -105,7 +106,7 @@ MonoBehaviour:
|
||||
- CharacterData_Basic_Cleric
|
||||
- CharacterData_Basic_Knight
|
||||
- CharacterData_Basic_Mage
|
||||
- CharacterData_Basic_MarshalOfTheUnderworld
|
||||
- CharacterData_Basic_MarshalOfUnderworld
|
||||
- CharacterData_Basic_SkeletonGuard
|
||||
equipmentDataIDList:
|
||||
- EquipmentData_Basic_SteelBracer
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3665151d5823cfb4990befbc8e4dbc62
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -13,18 +13,32 @@ MonoBehaviour:
|
||||
m_Name: CardData_Basic_NecromanticInfusion
|
||||
m_EditorClassIdentifier:
|
||||
modName: Basic
|
||||
categoryName:
|
||||
className: NecromanticInfusion
|
||||
displayName: Card_Basic_NecromanticInfusion_DisplayName
|
||||
cardRarity: 40
|
||||
cardRarity: 30
|
||||
cardType: 10
|
||||
tags: []
|
||||
keywords:
|
||||
- TargetEnemies
|
||||
cardSprite: {fileID: 21300000, guid: 4319eef242cf5a94cace1528f74bfe42, type: 3}
|
||||
cardLayoutTags: []
|
||||
functionText: Card_Basic_NecromanticInfusion_FunctionText
|
||||
cardDescription: $Keyword("Exhaust"), Apply 50% Lifesteal amplification to all
|
||||
allies.
|
||||
baseWeight: 10
|
||||
cardDescription:
|
||||
baseWeight: 0
|
||||
variableAttributes:
|
||||
dictionaryList: []
|
||||
dictionaryList:
|
||||
- Key: TargetCount
|
||||
Value: 1
|
||||
index: 0
|
||||
isKeyDuplicated: 0
|
||||
- Key: StaminaCost
|
||||
Value: 2
|
||||
index: 1
|
||||
isKeyDuplicated: 0
|
||||
- Key: ManaCost
|
||||
Value: 0
|
||||
index: 2
|
||||
isKeyDuplicated: 0
|
||||
dividerPosProp: 0.5
|
||||
originalAttributes:
|
||||
dictionaryList: []
|
||||
@@ -12,16 +12,18 @@ namespace Continentis.Mods.Basic.Cards
|
||||
{
|
||||
protected override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
|
||||
{
|
||||
base.PlayEffect(targetList);
|
||||
CommandGroup main = new CommandGroup(new Cmd_Function(() =>
|
||||
{
|
||||
CreateCharacterBuff<Prowess>(2).Apply(user, user, this);
|
||||
}));
|
||||
|
||||
CommandGroup mainGroup = TargetListCommandGroup(targetList, ExecutionMode.Parallel, ExecutionMode.Parallel,
|
||||
CommandGroup weak = TargetListCommandGroup(targetList,
|
||||
new Cmd_ParamFunction<CharacterBase>(0.2f, target =>
|
||||
{
|
||||
Basic_SoulAbsorption buff = new Basic_SoulAbsorption(50);
|
||||
buff.Apply(target, user, this);
|
||||
CreateCharacterBuff<Weak>(2).Apply(target, user, this);
|
||||
}));
|
||||
|
||||
return new List<CommandBase> { mainGroup };
|
||||
return new List<CommandBase> { main, weak };
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,8 +18,6 @@ namespace Continentis.Mods.Basic.Cards
|
||||
|
||||
protected override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
|
||||
{
|
||||
base.PlayEffect(targetList);
|
||||
|
||||
CommandGroup singleTargetGroup = new CommandGroup(ExecutionMode.Parallel,
|
||||
new Cmd_PlayAnimation(user.characterView, "Attack"),
|
||||
new Cmd_ParamFunction<CharacterBase>(0.4f, target =>
|
||||
|
||||
@@ -10,13 +10,13 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b6560183465e5944ba49e39974faafd4, type: 3}
|
||||
m_Name: CharacterData_Basic_MarshalOfTheUnderworld
|
||||
m_Name: CharacterData_Basic_MarshalOfUnderworld
|
||||
m_EditorClassIdentifier:
|
||||
haveCustomClass: 0
|
||||
classFullName:
|
||||
haveCustomClass: 1
|
||||
classFullName: MarshalOfUnderworld
|
||||
modName: Basic
|
||||
className: MarshalOfTheUnderworld
|
||||
displayName: Marshal Of The Underworld
|
||||
className: MarshalOfUnderworld
|
||||
displayName: Marshal Of Underworld
|
||||
tags: []
|
||||
avatar: {fileID: 21300000, guid: 8b60e98b9ca5e6a4587341cd27607e24, type: 3}
|
||||
portrait: {fileID: 0}
|
||||
@@ -144,7 +144,7 @@ MonoBehaviour:
|
||||
index: 20
|
||||
isKeyDuplicated: 0
|
||||
- Key: StaminaRecoverPerAction
|
||||
Value: 0
|
||||
Value: 4
|
||||
index: 21
|
||||
isKeyDuplicated: 0
|
||||
- Key: ManaRecoverPerAction
|
||||
@@ -192,6 +192,11 @@ MonoBehaviour:
|
||||
prefabRefs: []
|
||||
derivativeCardDataRefs: []
|
||||
derivativeCharacterDataRefs: []
|
||||
initialDeckRef: []
|
||||
initialDeckRef:
|
||||
- CardData_Basic_ArmyOfTheDead
|
||||
- CardData_Basic_GreatswordSweep
|
||||
- CardData_Basic_HellfireBlast
|
||||
- CardData_Basic_WrathOfUnderworld
|
||||
- CardData_Basic_NecromanticInfusion
|
||||
hudDataRefs:
|
||||
- HUDData_Basic_Default
|
||||
130
Assets/Mods/Basic/Characters/Scripts/MarshalOfUnderworld.cs
Normal file
130
Assets/Mods/Basic/Characters/Scripts/MarshalOfUnderworld.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Continentis.MainGame.Card;
|
||||
using Continentis.MainGame.Character;
|
||||
using Continentis.MainGame.Combat;
|
||||
using Continentis.Mods.Basic.Buffs;
|
||||
using Continentis.Mods.Basic.Cards;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Continentis.Mods.Basic.Characters
|
||||
{
|
||||
public class MarshalOfUnderworld : CharacterLogicBase
|
||||
{
|
||||
public override void Initialize(CharacterBase character)
|
||||
{
|
||||
base.Initialize(character);
|
||||
character.RegisterIntention(
|
||||
new Normal(character.intentionSubmodule),
|
||||
new SummonFirst(character.intentionSubmodule),
|
||||
new UltimateAttackFirst(character.intentionSubmodule));
|
||||
}
|
||||
|
||||
private class Normal : IntentionBase
|
||||
{
|
||||
public Normal(IntentionSubmodule intentionSubmodule) : base(intentionSubmodule)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void RefreshCardWeights()
|
||||
{
|
||||
characterDeck.PoolPile.ForEach(card =>
|
||||
{
|
||||
card.cardLogic.weightSubmodule.baseWeight = 0;
|
||||
card.cardLogic.weightSubmodule.forceUse = false;
|
||||
card.cardLogic.weightSubmodule.forceIgnore = false;
|
||||
});
|
||||
|
||||
foreach (CardInstance card in characterDeck.PoolPile)
|
||||
{
|
||||
if (card.cardLogic is HellfireBlast)
|
||||
{
|
||||
card.cardLogic.weightSubmodule.baseWeight = 1;
|
||||
}
|
||||
else if (card.cardLogic is NecromanticInfusion)
|
||||
{
|
||||
if (characterRecord.GetLastActionsRecords(3)
|
||||
.Any(rec => rec.cardsPlayed.Any(recCard => recCard.cardLogic is NecromanticInfusion)))
|
||||
{
|
||||
card.cardLogic.weightSubmodule.baseWeight = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
card.cardLogic.weightSubmodule.baseWeight = 1;
|
||||
}
|
||||
}
|
||||
else if (card.cardLogic is GreatswordSweep)
|
||||
{
|
||||
card.cardLogic.weightSubmodule.baseWeight = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class SummonFirst : Normal
|
||||
{
|
||||
public SummonFirst(IntentionSubmodule intentionSubmodule) : base(intentionSubmodule)
|
||||
{
|
||||
Priority = 20;
|
||||
}
|
||||
|
||||
public override bool Condition()
|
||||
{
|
||||
List<CharacterBase> allies = CombatMainManager.Instance.characterController.GetAllAllies(character);
|
||||
return allies.Count == 1; // Only self is present
|
||||
}
|
||||
|
||||
public override void RefreshCardWeights()
|
||||
{
|
||||
base.RefreshCardWeights();
|
||||
|
||||
foreach (CardInstance card in characterDeck.PoolPile)
|
||||
{
|
||||
if (card.cardLogic is ArmyOfTheDead)
|
||||
{
|
||||
card.cardLogic.weightSubmodule.forceUse = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class UltimateAttackFirst : Normal
|
||||
{
|
||||
public UltimateAttackFirst(IntentionSubmodule intentionSubmodule) : base(intentionSubmodule)
|
||||
{
|
||||
Priority = 10;
|
||||
}
|
||||
|
||||
public override bool Condition()
|
||||
{
|
||||
List<CharacterBase> targets = CombatMainManager.Instance.characterController.GetAllEnemies(character);
|
||||
foreach (CharacterBase target in targets)
|
||||
{
|
||||
if (target.combatBuffSubmodule.TryGetBuff(out Burn burn))
|
||||
{
|
||||
if (burn.unitedStackSubmodule.stackAmount >= 5)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void RefreshCardWeights()
|
||||
{
|
||||
base.RefreshCardWeights();
|
||||
|
||||
foreach (CardInstance card in characterDeck.PoolPile)
|
||||
{
|
||||
if (card.cardLogic is WrathOfUnderworld)
|
||||
{
|
||||
card.cardLogic.weightSubmodule.forceUse = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,11 @@ namespace Continentis.Mods.Basic.Rules
|
||||
{
|
||||
public override void ApplyRules_ConvertCoreIntoGeneral(Dictionary<string, float> core, Dictionary<string, float> general)
|
||||
{
|
||||
if (core.TryGetValue("DisableConversion", out float value) && value > 0) //如果禁用属性转换,则直接返回
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
float level = core["Level"];
|
||||
general["MaximumHealth"] += Mathf.FloorToInt(level * 3);
|
||||
general["MaximumMana"] += Mathf.FloorToInt(level / 2);
|
||||
|
||||
Reference in New Issue
Block a user