Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Localization/zhs/cards_green_custom.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"GREEN_CORPSE_EXPLOSION.title": "尸爆术",
"GREEN_CORPSE_EXPLOSION.description": "给予{PoisonPower:diff()}层[gold]中毒[/gold]。\n若该敌人在本场战斗中死亡,则对所有敌人造成等同于其最大生命值的伤害。"
}
24 changes: 24 additions & 0 deletions Localization/zhs/cards_red_custom.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"RED_BATTLE_TRANCE.description": "抽{Cards:diff()}张牌。\n你在本回合内不能再抽任何牌。",
"RED_BATTLE_TRANCE.title": "战吼",
"RED_BLOOD_FOR_BLOOD.description": "造成{Damage:diff()}点伤害。\n在本场战斗中,每当你失去生命值时,这张牌的耗能减少{energyIcons(1)}。",
"RED_BLOOD_FOR_BLOOD.title": "以血还血",
"RED_CLEAVE.description": "对所有敌人造成{Damage:diff()}点伤害。",
"RED_CLEAVE.title": "顺劈斩",
"RED_CLOTHESLINE.description": "造成{Damage:diff()}点伤害。\n给予{WeakPower:diff()}层[gold]虚弱[/gold]。",
"RED_CLOTHESLINE.title": "金刚臂",
"RED_HEAVY_BLADE.description": "造成{Damage:diff()}点伤害。\n[gold]力量[/gold]对这张牌的影响变为[blue]{StrengthMultiplier:diff()}[/blue]倍。",
"RED_HEAVY_BLADE.title": "重刃",
"RED_METALLICIZE.description": "获得[blue]{RedMetallicizePower:diff()}[/blue]层[gold]金属化[/gold]。",
"RED_METALLICIZE.title": "金属化",
"RED_PUMMEL.description": "造成{Damage:diff()}点伤害{Hits:diff()}次。\n[gold]消耗[/gold]。",
"RED_PUMMEL.title": "连续拳",
"RED_SEARING_BLOW.description": "造成{Damage:diff()}点伤害。",
"RED_SEARING_BLOW.title": "灼热打击",
"RED_SHOCKWAVE.description": "给予所有敌人{Power:diff()}层[gold]虚弱[/gold]和[gold]易伤[/gold]。",
"RED_SHOCKWAVE.title": "震荡波",
"RED_FIRE_BREATHING.title": "火焰呼吸",
"RED_FIRE_BREATHING.description": "每当你抽到一张[gold]状态[/gold]或[gold]诅咒[/gold]牌时,对所有敌人造成{RedFireBreathingPower:diff()}点伤害。",
"RED_COMBUST.title": "自燃",
"RED_COMBUST.description": "在你的回合结束时,失去1点生命并对所有敌人造成{RedCombustPower:diff()}点伤害。"
}
5 changes: 5 additions & 0 deletions Localization/zhs/powers_green_custom.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"GREEN_CORPSE_EXPLOSION_POWER.title": "尸爆",
"GREEN_CORPSE_EXPLOSION_POWER.description": "若该生物在本场战斗中死亡,则对所有敌人造成等同于其最大生命值的伤害。",
"GREEN_CORPSE_EXPLOSION_POWER.smartDescription": "若[gold]{OwnerName}[/gold]在本场战斗中死亡,则对所有敌人造成等同于其最大生命值的伤害。"
}
11 changes: 11 additions & 0 deletions Localization/zhs/powers_red_custom.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"RED_METALLICIZE_POWER.title": "金属化",
"RED_METALLICIZE_POWER.description": "在你的回合结束时获得[gold]格挡[/gold]。",
"RED_METALLICIZE_POWER.smartDescription": "在你的回合结束时获得[blue]{Amount}[/blue]点[gold]格挡[/gold]。",
"RED_FIRE_BREATHING_POWER.title": "火焰呼吸",
"RED_FIRE_BREATHING_POWER.description": "每当你抽到一张状态牌或诅咒牌时,对所有敌人造成伤害。",
"RED_FIRE_BREATHING_POWER.smartDescription": "每当你抽到一张状态牌或诅咒牌时,对所有敌人造成[blue]{Amount}[/blue]点伤害。",
"RED_COMBUST_POWER.title": "自燃",
"RED_COMBUST_POWER.description": "在你的回合结束时,失去生命并对所有敌人造成伤害。",
"RED_COMBUST_POWER.smartDescription": "在你的回合结束时,失去1点生命并对所有敌人造成[blue]{Amount}[/blue]点伤害。"
}
55 changes: 55 additions & 0 deletions Models/Cards/GreenCorpseExplosion.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using MegaCrit.Sts2.Core.Commands;
using MegaCrit.Sts2.Core.Entities.Cards;
using MegaCrit.Sts2.Core.GameActions.Multiplayer;
using MegaCrit.Sts2.Core.HoverTips;
using MegaCrit.Sts2.Core.Localization.DynamicVars;
using MegaCrit.Sts2.Core.Models.Powers;

namespace MegaCrit.Sts2.Core.Models.Cards
{
[NullableContext(1)]
[Nullable(0)]
public sealed class GreenCorpseExplosion : CardModel
{
public GreenCorpseExplosion()
: base(2, CardType.Skill, CardRarity.Uncommon, TargetType.AnyEnemy, true)
{
}

protected override IEnumerable<DynamicVar> CanonicalVars
{
get
{
return new DynamicVar[] { new PowerVar<PoisonPower>(6m) };
}
}

protected override IEnumerable<IHoverTip> ExtraHoverTips
{
get
{
return new IHoverTip[]
{
HoverTipFactory.FromPower<PoisonPower>(),
HoverTipFactory.FromPower<GreenCorpseExplosionPower>()
};
}
}

protected override async Task OnPlay(PlayerChoiceContext choiceContext, CardPlay cardPlay)
{
ArgumentNullException.ThrowIfNull(cardPlay.Target, "cardPlay.Target");
await PowerCmd.Apply<PoisonPower>(cardPlay.Target, base.DynamicVars.Poison.BaseValue, base.Owner.Creature, this, false);
await PowerCmd.Apply<GreenCorpseExplosionPower>(cardPlay.Target, 1m, base.Owner.Creature, this, false);
}

protected override void OnUpgrade()
{
base.DynamicVars.Poison.UpgradeValueBy(3m);
}
}
}
41 changes: 41 additions & 0 deletions Models/Cards/RedBattleTrance.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using MegaCrit.Sts2.Core.Commands;
using MegaCrit.Sts2.Core.Entities.Cards;
using MegaCrit.Sts2.Core.GameActions.Multiplayer;
using MegaCrit.Sts2.Core.Localization.DynamicVars;
using MegaCrit.Sts2.Core.Models.Powers;

namespace MegaCrit.Sts2.Core.Models.Cards
{
[NullableContext(1)]
[Nullable(0)]
public sealed class RedBattleTrance : CardModel
{
public RedBattleTrance()
: base(0, CardType.Skill, CardRarity.Uncommon, TargetType.Self, true)
{
}

protected override IEnumerable<DynamicVar> CanonicalVars
{
get
{
return new DynamicVar[] { new CardsVar(3) };
}
}

protected override async Task OnPlay(PlayerChoiceContext choiceContext, CardPlay cardPlay)
{
await CardPileCmd.Draw(choiceContext, base.DynamicVars.Cards.BaseValue, base.Owner, false);
await PowerCmd.Apply<NoDrawPower>(base.Owner.Creature, 1m, base.Owner.Creature, this, false);
}

protected override void OnUpgrade()
{
base.DynamicVars.Cards.UpgradeValueBy(1m);
}
}
}
79 changes: 79 additions & 0 deletions Models/Cards/RedBloodForBlood.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using MegaCrit.Sts2.Core.Combat;
using MegaCrit.Sts2.Core.Combat.History.Entries;
using MegaCrit.Sts2.Core.Commands;
using MegaCrit.Sts2.Core.Entities.Cards;
using MegaCrit.Sts2.Core.Entities.Creatures;
using MegaCrit.Sts2.Core.GameActions.Multiplayer;
using MegaCrit.Sts2.Core.Localization.DynamicVars;
using MegaCrit.Sts2.Core.ValueProps;

namespace MegaCrit.Sts2.Core.Models.Cards
{
[NullableContext(1)]
[Nullable(0)]
public sealed class RedBloodForBlood : CardModel
{
public RedBloodForBlood()
: base(4, CardType.Attack, CardRarity.Uncommon, TargetType.AnyEnemy, true)
{
}

protected override IEnumerable<DynamicVar> CanonicalVars
{
get
{
return new DynamicVar[] { new DamageVar(18m, ValueProp.Move) };
}
}

protected override async Task OnPlay(PlayerChoiceContext choiceContext, CardPlay cardPlay)
{
ArgumentNullException.ThrowIfNull(cardPlay.Target, "cardPlay.Target");
await DamageCmd.Attack(base.DynamicVars.Damage.BaseValue).FromCard(this).Targeting(cardPlay.Target)
.WithHitFx("vfx/vfx_attack_slash", null, null)
.Execute(choiceContext);
}

protected override void OnUpgrade()
{
base.DynamicVars.Damage.UpgradeValueBy(4m);
}

public override Task AfterCardEnteredCombat(CardModel card)
{
if (card != this)
{
return Task.CompletedTask;
}
if (base.IsClone)
{
return Task.CompletedTask;
}
int num = CombatManager.Instance.History.Entries.OfType<DamageReceivedEntry>().Count((DamageReceivedEntry e) => e.Receiver == base.Owner.Creature && e.Result.UnblockedDamage > 0);
if (num > 0)
{
base.EnergyCost.AddThisCombat(-num, false);
}
return Task.CompletedTask;
}

public override Task AfterDamageReceived(PlayerChoiceContext choiceContext, Creature target, DamageResult result, ValueProp props, [Nullable(2)] Creature dealer, [Nullable(2)] CardModel cardSource)
{
if (target != base.Owner.Creature)
{
return Task.CompletedTask;
}
if (result.UnblockedDamage <= 0m)
{
return Task.CompletedTask;
}
base.EnergyCost.AddThisCombat(-1, false);
return Task.CompletedTask;
}
}
}
42 changes: 42 additions & 0 deletions Models/Cards/RedCleave.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using MegaCrit.Sts2.Core.Commands;
using MegaCrit.Sts2.Core.Entities.Cards;
using MegaCrit.Sts2.Core.GameActions.Multiplayer;
using MegaCrit.Sts2.Core.Localization.DynamicVars;
using MegaCrit.Sts2.Core.ValueProps;

namespace MegaCrit.Sts2.Core.Models.Cards
{
[NullableContext(1)]
[Nullable(0)]
public sealed class RedCleave : CardModel
{
public RedCleave()
: base(1, CardType.Attack, CardRarity.Common, TargetType.AllEnemies, true)
{
}

protected override IEnumerable<DynamicVar> CanonicalVars
{
get
{
return new DynamicVar[] { new DamageVar(8m, ValueProp.Move) };
}
}

protected override async Task OnPlay(PlayerChoiceContext choiceContext, CardPlay cardPlay)
{
await DamageCmd.Attack(base.DynamicVars.Damage.BaseValue).FromCard(this).TargetingAllOpponents(base.CombatState)
.WithHitFx("vfx/vfx_attack_slash", null, null)
.Execute(choiceContext);
}

protected override void OnUpgrade()
{
base.DynamicVars.Damage.UpgradeValueBy(3m);
}
}
}
59 changes: 59 additions & 0 deletions Models/Cards/RedClothesline.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using MegaCrit.Sts2.Core.Commands;
using MegaCrit.Sts2.Core.Entities.Cards;
using MegaCrit.Sts2.Core.GameActions.Multiplayer;
using MegaCrit.Sts2.Core.HoverTips;
using MegaCrit.Sts2.Core.Localization.DynamicVars;
using MegaCrit.Sts2.Core.Models.Powers;
using MegaCrit.Sts2.Core.ValueProps;

namespace MegaCrit.Sts2.Core.Models.Cards
{
[NullableContext(1)]
[Nullable(0)]
public sealed class RedClothesline : CardModel
{
public RedClothesline()
: base(2, CardType.Attack, CardRarity.Uncommon, TargetType.AnyEnemy, true)
{
}

protected override IEnumerable<DynamicVar> CanonicalVars
{
get
{
return new DynamicVar[]
{
new DamageVar(12m, ValueProp.Move),
new PowerVar<WeakPower>(2m)
};
}
}

protected override IEnumerable<IHoverTip> ExtraHoverTips
{
get
{
return new IHoverTip[] { HoverTipFactory.FromPower<WeakPower>() };
}
}

protected override async Task OnPlay(PlayerChoiceContext choiceContext, CardPlay cardPlay)
{
ArgumentNullException.ThrowIfNull(cardPlay.Target, "cardPlay.Target");
await DamageCmd.Attack(base.DynamicVars.Damage.BaseValue).FromCard(this).Targeting(cardPlay.Target)
.WithHitFx("vfx/vfx_attack_slash", null, null)
.Execute(choiceContext);
await PowerCmd.Apply<WeakPower>(cardPlay.Target, base.DynamicVars.Weak.BaseValue, base.Owner.Creature, this, false);
}

protected override void OnUpgrade()
{
base.DynamicVars.Damage.UpgradeValueBy(4m);
base.DynamicVars.Weak.UpgradeValueBy(1m);
}
}
}
49 changes: 49 additions & 0 deletions Models/Cards/RedCombust.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using MegaCrit.Sts2.Core.Commands;
using MegaCrit.Sts2.Core.Entities.Cards;
using MegaCrit.Sts2.Core.GameActions.Multiplayer;
using MegaCrit.Sts2.Core.HoverTips;
using MegaCrit.Sts2.Core.Localization.DynamicVars;
using MegaCrit.Sts2.Core.Models.Powers;

namespace MegaCrit.Sts2.Core.Models.Cards
{
[NullableContext(1)]
[Nullable(0)]
public sealed class RedCombust : CardModel
{
public RedCombust()
: base(1, CardType.Power, CardRarity.Uncommon, TargetType.Self, true)
{
}

protected override IEnumerable<IHoverTip> ExtraHoverTips
{
get
{
return new IHoverTip[] { HoverTipFactory.FromPower<RedCombustPower>() };
}
}

protected override IEnumerable<DynamicVar> CanonicalVars
{
get
{
return new DynamicVar[] { new PowerVar<RedCombustPower>(5m) };
}
}

protected override async Task OnPlay(PlayerChoiceContext choiceContext, CardPlay cardPlay)
{
await PowerCmd.Apply<RedCombustPower>(base.Owner.Creature, base.DynamicVars["RedCombustPower"].BaseValue, base.Owner.Creature, this, false);
}

protected override void OnUpgrade()
{
base.DynamicVars["RedCombustPower"].UpgradeValueBy(2m);
}
}
}
Loading