Compare commits
No commits in common. "PF-3" and "master" have entirely different histories.
@ -1,7 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using pflib_net.characters.internals.proficiencies;
|
||||
using pflib_net.characters.internals.stats;
|
||||
using pflib_net.conditions;
|
||||
using pflib_net.damage;
|
||||
|
||||
namespace pflib_net.characters;
|
||||
@ -15,7 +14,6 @@ public class PlayerCharacter : ICharacter
|
||||
private ISet<string> Immunities { get; }
|
||||
private Dictionary<string, int> Resistances { get; }
|
||||
private Dictionary<string, int> Weaknesses { get; }
|
||||
private IEnumerable<ICondition>? Conditions { get; set; } = null;
|
||||
|
||||
public PlayerCharacter(
|
||||
int hp,
|
||||
|
||||
@ -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);
|
||||
}
|
||||
@ -1,43 +1,21 @@
|
||||
namespace pflib_net.dice;
|
||||
|
||||
public class Dice
|
||||
public struct Dice
|
||||
{
|
||||
private int _keepHighest;
|
||||
private int _keepLowest;
|
||||
private int Count { get; set; }
|
||||
private int Size { get; set; }
|
||||
|
||||
private int KeepHighest
|
||||
{
|
||||
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 KeepHighest { get; set; }
|
||||
private int KeepLowest { get; set; }
|
||||
private int Add { get; set; }
|
||||
private static readonly Random Random = new();
|
||||
|
||||
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;
|
||||
Size = size;
|
||||
KeepHighest = keepHighest;
|
||||
@ -47,12 +25,22 @@ public class Dice
|
||||
|
||||
public Dice Kh(int keepHighest)
|
||||
{
|
||||
if (KeepLowest > 0)
|
||||
{
|
||||
throw new InvalidOperationException("Cannot set keepHighest and keepLowest in the same roll");
|
||||
}
|
||||
|
||||
KeepHighest = keepHighest;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Dice Kl(int keepLowest)
|
||||
{
|
||||
if (KeepHighest > 0)
|
||||
{
|
||||
throw new InvalidOperationException("Cannot set keepHighest and keepLowest in the same roll");
|
||||
}
|
||||
|
||||
KeepLowest = keepLowest;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
namespace pflib_net.effects;
|
||||
|
||||
public interface IEffect
|
||||
{
|
||||
public string Reason { get; }
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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; }
|
||||
}
|
||||
@ -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; }
|
||||
}
|
||||
@ -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; }
|
||||
}
|
||||
@ -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; }
|
||||
}
|
||||
@ -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; }
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user