Compare commits

..

No commits in common. "PF-3" and "master" have entirely different histories.
PF-3 ... master

10 changed files with 18 additions and 150 deletions

View File

@ -1,7 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using pflib_net.characters.internals.proficiencies; using pflib_net.characters.internals.proficiencies;
using pflib_net.characters.internals.stats; using pflib_net.characters.internals.stats;
using pflib_net.conditions;
using pflib_net.damage; using pflib_net.damage;
namespace pflib_net.characters; namespace pflib_net.characters;
@ -15,7 +14,6 @@ public class PlayerCharacter : ICharacter
private ISet<string> Immunities { get; } private ISet<string> Immunities { get; }
private Dictionary<string, int> Resistances { get; } private Dictionary<string, int> Resistances { get; }
private Dictionary<string, int> Weaknesses { get; } private Dictionary<string, int> Weaknesses { get; }
private IEnumerable<ICondition>? Conditions { get; set; } = null;
public PlayerCharacter( public PlayerCharacter(
int hp, int hp,

View File

@ -1,9 +0,0 @@
using pflib_net.characters;
using pflib_net.effects;
namespace pflib_net.conditions;
public interface ICondition
{
public ISet<IEffect> GetEffects(ICharacter character);
}

View File

@ -1,43 +1,21 @@
namespace pflib_net.dice; namespace pflib_net.dice;
public class Dice public struct Dice
{ {
private int _keepHighest;
private int _keepLowest;
private int Count { get; set; } private int Count { get; set; }
private int Size { get; set; } private int Size { get; set; }
private int KeepHighest { get; set; }
private int KeepHighest private int KeepLowest { get; set; }
{
get => _keepHighest;
set
{
if (value > 0 && KeepLowest > 0)
{
throw new InvalidOperationException("Cannot set keepHighest and keepLowest at the same time");
}
_keepHighest = value;
}
}
private int KeepLowest
{
get => _keepLowest;
set
{
if (value > 0 && KeepHighest > 0)
{
throw new InvalidOperationException("Cannot set keepHighest and keepLowest at the same time");
}
_keepLowest = value;
}
}
private int Add { get; set; } private int Add { get; set; }
private static readonly Random Random = new(); private static readonly Random Random = new();
public Dice(int size, int count = 1, int keepHighest = 0, int keepLowest = 0, int add = 0) public Dice(int size, int count = 1, int keepHighest = 0, int keepLowest = 0, int add = 0)
{ {
if (keepHighest > 0 && keepLowest > 0)
{
throw new InvalidOperationException("Cannot set keepHighest and keepLowest at the same time");
}
Count = count; Count = count;
Size = size; Size = size;
KeepHighest = keepHighest; KeepHighest = keepHighest;
@ -47,12 +25,22 @@ public class Dice
public Dice Kh(int keepHighest) public Dice Kh(int keepHighest)
{ {
if (KeepLowest > 0)
{
throw new InvalidOperationException("Cannot set keepHighest and keepLowest in the same roll");
}
KeepHighest = keepHighest; KeepHighest = keepHighest;
return this; return this;
} }
public Dice Kl(int keepLowest) public Dice Kl(int keepLowest)
{ {
if (KeepHighest > 0)
{
throw new InvalidOperationException("Cannot set keepHighest and keepLowest in the same roll");
}
KeepLowest = keepLowest; KeepLowest = keepLowest;
return this; return this;
} }

View File

@ -1,6 +0,0 @@
namespace pflib_net.effects;
public interface IEffect
{
public string Reason { get; }
}

View File

@ -1,24 +0,0 @@
using pflib_net.conditions;
namespace pflib_net.effects.implementation;
public readonly struct ConditionEffect: IEffect
{
private readonly ICondition _condition;
private readonly string _reason;
public ICondition Condition
{
get => _condition;
}
public string Reason
{
get => _reason;
init => _reason = value;
}
public ConditionEffect(ICondition condition, string reason)
{
_condition = condition;
_reason = reason;
}
}

View File

@ -1,14 +0,0 @@
namespace pflib_net.effects.implementation;
public readonly struct ImmunityEffect: IEffect
{
public ImmunityEffect(string tag, string reason)
{
Tag = tag;
Reason = reason;
}
public string Tag { get; }
public string Reason { get; }
}

View File

@ -1,19 +0,0 @@
namespace pflib_net.effects.implementation;
public readonly struct ModifierEffect: IEffect
{
public ModifierEffect(string tag, string reason, int value, string? type)
{
Tag = tag;
Reason = reason;
Value = value;
Type = type;
}
public string Tag { get; }
public string Reason { get; }
public string? Type { get; }
public int Value { get; }
}

View File

@ -1,17 +0,0 @@
namespace pflib_net.effects.implementation;
public readonly struct ResistanceEffect: IEffect
{
public ResistanceEffect(string tag, string reason, int amount)
{
Tag = tag;
Reason = reason;
Amount = amount;
}
public string Tag { get; }
public string Reason { get; }
public int Amount { get; }
}

View File

@ -1,13 +0,0 @@
namespace pflib_net.effects.implementation;
public readonly struct TeamEffect: IEffect
{
public TeamEffect(int side, string reason)
{
Side = side;
Reason = reason;
}
public int Side { get; }
public string Reason { get; }
}

View File

@ -1,16 +0,0 @@
namespace pflib_net.effects.implementation;
public readonly struct WeaknessEffect: IEffect
{
public WeaknessEffect(string tag, string reason, int amount)
{
Tag = tag;
Reason = reason;
Amount = amount;
}
public string Tag { get; }
public string Reason { get; }
public int Amount { get; }
}