ported from perforce
This commit is contained in:
3
RobotAndDonkey.Game/Cards/Glitches/Bitflip.cs
Normal file
3
RobotAndDonkey.Game/Cards/Glitches/Bitflip.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record Bitflip() : ModifyInstructionPermanently(EModifierId.Corrupt, ECard.Bitflip);
|
||||
34
RobotAndDonkey.Game/Cards/Glitches/Drought.cs
Normal file
34
RobotAndDonkey.Game/Cards/Glitches/Drought.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Data;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record Drought() : GlitchCard(ECard.Drought)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
var cells = coreLoop.Board.Cells;
|
||||
foreach (var cell in cells)
|
||||
{
|
||||
if (cell.Type == ECellType.Fertile)
|
||||
{
|
||||
intents.Add(new ModifyCell(cell, EModifierId.Drought, EModifierDuration.Temporary));
|
||||
}
|
||||
else if (cell.Type == ECellType.Grass)
|
||||
{
|
||||
if (coreLoop.Random.NextSingle() < Balancing.Instance.DroughtTransformProbability)
|
||||
intents.Add(new ModifyCell(cell, EModifierId.Drought, EModifierDuration.Temporary));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToolTip => "Fertility in the land is drastically reduced.";
|
||||
|
||||
public override Modifier[] TooltipModifiers => [new DroughtModifier(EModifierDuration.Temporary)];
|
||||
}
|
||||
16
RobotAndDonkey.Game/Cards/Glitches/GlitchCard.cs
Normal file
16
RobotAndDonkey.Game/Cards/Glitches/GlitchCard.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record GlitchCard(ECard Id) : Card(Id, ECardType.Glitch, ERarity.Common, 0, 0)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
base.CreateIntents(avatarCell, coreLoop, requestId, intents, results);
|
||||
}
|
||||
}
|
||||
21
RobotAndDonkey.Game/Cards/Glitches/Gravity.cs
Normal file
21
RobotAndDonkey.Game/Cards/Glitches/Gravity.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record Gravity() : GlitchCard(ECard.Gravity)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
intents.Add(new ModifyRobot(EModifierId.Gravity, EModifierDuration.Temporary));
|
||||
}
|
||||
|
||||
public override string ToolTip => "Carry capacity temporarily reduced.";
|
||||
|
||||
public override Modifier[] TooltipModifiers => [new GravityModifier(EModifierDuration.Temporary)];
|
||||
}
|
||||
21
RobotAndDonkey.Game/Cards/Glitches/HeatWave.cs
Normal file
21
RobotAndDonkey.Game/Cards/Glitches/HeatWave.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record HeatWave() : GlitchCard(ECard.HeatWave)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
intents.Add(new ModifyRobot(EModifierId.HeatWave, EModifierDuration.Temporary));
|
||||
}
|
||||
|
||||
public override string ToolTip => "Energy consumption temporarily increased.";
|
||||
|
||||
public override Modifier[] TooltipModifiers => [new HeatWaveModifier(EModifierDuration.Temporary)];
|
||||
}
|
||||
7
RobotAndDonkey.Game/Cards/Glitches/Latency.cs
Normal file
7
RobotAndDonkey.Game/Cards/Glitches/Latency.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record Latency() : ModifyInstructionPermanently(EModifierId.Throttled, ECard.Latency);
|
||||
3
RobotAndDonkey.Game/Cards/Glitches/LightningStorm.cs
Normal file
3
RobotAndDonkey.Game/Cards/Glitches/LightningStorm.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record LightningStorm() : ModifyInstructionsTemporarily(EModifierId.Unreliable, ECard.LightningStorm);
|
||||
3
RobotAndDonkey.Game/Cards/Glitches/MeteorStorm.cs
Normal file
3
RobotAndDonkey.Game/Cards/Glitches/MeteorStorm.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record MeteorStorm() : ModifyInstructionsTemporarily(EModifierId.RaceCondition, ECard.MeteorStorm);
|
||||
@@ -0,0 +1,21 @@
|
||||
using RobotAndDonkey.Game;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Cards;
|
||||
using RobotAndDonkey.Game.Cards.Glitches;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
public abstract record ModifyInstructionPermanently(EModifierId Modifier, ECard Id) : GlitchCard(Id)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
var victim = coreLoop.PatchDeck[coreLoop.Random.Next(coreLoop.PatchDeck.Count)];
|
||||
intents.Add(new ModifyCard(victim, Modifier, EModifierDuration.Permanent, ECardLocation.Deck));
|
||||
}
|
||||
|
||||
public override string ToolTip => $"Adds {Modifier} to one instruction, permanently.";
|
||||
|
||||
public override Modifier[] TooltipModifiers => [ModifyCard.Create(Modifier, EModifierDuration.Permanent)];
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using RobotAndDonkey.Game;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Cards;
|
||||
using RobotAndDonkey.Game.Cards.Glitches;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
public abstract record ModifyInstructionsTemporarily(EModifierId Modifier, ECard Id) : GlitchCard(Id)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
intents.AddRange(coreLoop.PatchDeck.Select(victim => new ModifyCard(victim, Modifier, EModifierDuration.Temporary, ECardLocation.Deck)));
|
||||
}
|
||||
|
||||
public override string ToolTip => $"Adds {Modifier} to all instructions, temporarily.";
|
||||
|
||||
public override Modifier[] TooltipModifiers => [ModifyCard.Create(Modifier, EModifierDuration.Temporary)];
|
||||
}
|
||||
22
RobotAndDonkey.Game/Cards/Glitches/Pest.cs
Normal file
22
RobotAndDonkey.Game/Cards/Glitches/Pest.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Data;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record Pest() : GlitchCard(ECard.Pest)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
intents.Add(new ModifyRobot(EModifierId.Pest, EModifierDuration.Temporary));
|
||||
}
|
||||
|
||||
public override string ToolTip => $"Deliveries temporarily reduced by {Balancing.Instance.PestDeliveryMultiplier * 100:N0}%.";
|
||||
|
||||
public override Modifier[] TooltipModifiers => [new PestModifier(EModifierDuration.Temporary)];
|
||||
}
|
||||
34
RobotAndDonkey.Game/Cards/Glitches/Rain.cs
Normal file
34
RobotAndDonkey.Game/Cards/Glitches/Rain.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using RobotAndDonkey.Game.Board;
|
||||
using RobotAndDonkey.Game.Data;
|
||||
using RobotAndDonkey.Game.Execution.Results;
|
||||
using RobotAndDonkey.Game.GameState;
|
||||
using RobotAndDonkey.Game.Intents;
|
||||
using RobotAndDonkey.Game.Modifiers;
|
||||
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record Rain() : GlitchCard(ECard.Rain)
|
||||
{
|
||||
public override void CreateIntents(Cell? avatarCell, CoreLoop coreLoop, Guid requestId, List<Intent> intents, List<Result> results)
|
||||
{
|
||||
var cells = coreLoop.Board.Cells;
|
||||
foreach (var cell in cells)
|
||||
{
|
||||
if (cell.Type == ECellType.Rocky)
|
||||
{
|
||||
intents.Add(new ModifyCell(cell, EModifierId.Rain, EModifierDuration.Temporary));
|
||||
}
|
||||
else if (cell.Type == ECellType.Grass)
|
||||
{
|
||||
if (coreLoop.Random.NextSingle() < Balancing.Instance.RainTransformProbability)
|
||||
intents.Add(new ModifyCell(cell, EModifierId.Rain, EModifierDuration.Temporary));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override string ToolTip => "Increases fertility throughout the map.";
|
||||
|
||||
public override Modifier[] TooltipModifiers => [new RainModifier(EModifierDuration.Temporary)];
|
||||
}
|
||||
3
RobotAndDonkey.Game/Cards/Glitches/ShortCircuit.cs
Normal file
3
RobotAndDonkey.Game/Cards/Glitches/ShortCircuit.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record ShortCircuit() : ModifyInstructionPermanently(EModifierId.Unreliable, ECard.ShortCircuit);
|
||||
3
RobotAndDonkey.Game/Cards/Glitches/Slipstream.cs
Normal file
3
RobotAndDonkey.Game/Cards/Glitches/Slipstream.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record Slipstream() : ModifyInstructionPermanently(EModifierId.RaceCondition, ECard.Slipstream);
|
||||
3
RobotAndDonkey.Game/Cards/Glitches/SolarFlare.cs
Normal file
3
RobotAndDonkey.Game/Cards/Glitches/SolarFlare.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record SolarFlare() : ModifyInstructionsTemporarily(EModifierId.Corrupt, ECard.SolarFlare);
|
||||
3
RobotAndDonkey.Game/Cards/Glitches/WindStorm.cs
Normal file
3
RobotAndDonkey.Game/Cards/Glitches/WindStorm.cs
Normal file
@@ -0,0 +1,3 @@
|
||||
namespace RobotAndDonkey.Game.Cards.Glitches;
|
||||
|
||||
public record WindStorm() : ModifyInstructionsTemporarily(EModifierId.Throttled, ECard.WindStorm);
|
||||
Reference in New Issue
Block a user