From abfde63278f4c97ead2f010112d31ce84af3bd6e Mon Sep 17 00:00:00 2001 From: Samuele Lorefice Date: Tue, 31 Dec 2024 03:05:17 +0100 Subject: [PATCH] Added base parts --- Attributes.cs | 18 ++++++++++++++++++ Characters/Character.cs | 20 ++++++++++++++++++++ Characters/EBodyBuild.cs | 11 +++++++++++ Characters/EMood.cs | 5 +++++ Characters/EPersonality.cs | 7 +++++++ IBuff.cs | 5 +++++ Part.cs | 8 ++++++++ Parts/Base/Arm.cs | 7 +++++++ Parts/Base/Breasts.cs | 7 +++++++ Parts/Base/Ear.cs | 7 +++++++ Parts/Base/Eye.cs | 7 +++++++ Parts/Base/Foot.cs | 7 +++++++ Parts/Base/Hand.cs | 7 +++++++ Parts/Base/Head.cs | 7 +++++++ Parts/Base/Leg.cs | 7 +++++++ Parts/Base/Mouth.cs | 7 +++++++ Parts/Base/Penis.cs | 7 +++++++ Parts/Base/Torso.cs | 7 +++++++ Parts/Base/Vagina.cs | 7 +++++++ 19 files changed, 158 insertions(+) create mode 100644 Attributes.cs create mode 100644 Characters/Character.cs create mode 100644 Characters/EBodyBuild.cs create mode 100644 Characters/EMood.cs create mode 100644 Characters/EPersonality.cs create mode 100644 IBuff.cs create mode 100644 Part.cs create mode 100644 Parts/Base/Arm.cs create mode 100644 Parts/Base/Breasts.cs create mode 100644 Parts/Base/Ear.cs create mode 100644 Parts/Base/Eye.cs create mode 100644 Parts/Base/Foot.cs create mode 100644 Parts/Base/Hand.cs create mode 100644 Parts/Base/Head.cs create mode 100644 Parts/Base/Leg.cs create mode 100644 Parts/Base/Mouth.cs create mode 100644 Parts/Base/Penis.cs create mode 100644 Parts/Base/Torso.cs create mode 100644 Parts/Base/Vagina.cs diff --git a/Attributes.cs b/Attributes.cs new file mode 100644 index 0000000..4db0732 --- /dev/null +++ b/Attributes.cs @@ -0,0 +1,18 @@ +namespace WaifuCellar; + +[AttributeUsage(AttributeTargets.Property)] +public class TraitAttribute : Attribute {} + +[AttributeUsage(AttributeTargets.Property)] +public class AttributeAttribute : Attribute{} + +[AttributeUsage(AttributeTargets.Property)] +public class StateAttribute : Attribute{} + +[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] +public class PartSpecificAttribute(Part part) : Attribute { + public Part Part { get; set; } = part; +} + +[AttributeUsage(AttributeTargets.Property)] +public class SkillAttribute : Attribute {} \ No newline at end of file diff --git a/Characters/Character.cs b/Characters/Character.cs new file mode 100644 index 0000000..894a142 --- /dev/null +++ b/Characters/Character.cs @@ -0,0 +1,20 @@ +namespace WaifuCellar.Characters; + +public class Character : Part { + [Trait] public int Age { get; set; } + [Trait] public EBodyBuild BodyBuild { get; set; } + [Attribute] public int Strength { get; set; } + [Trait] public EPersonality Personality { get; set; } + [State] public EMood Mood { get; set; } + [Trait] public int Adaptability { get; set; } + [Trait] public int Endurance { get; set; } + [Attribute] public int PainTolerance { get; set; } + [State] public int Stamina { get; set; } + [Trait] public float LearningScalar { get; set; } + [Attribute] public int Agility { get; set; } + [State] public int Equilibrium { get; set; } + //Only for this part + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Characters/EBodyBuild.cs b/Characters/EBodyBuild.cs new file mode 100644 index 0000000..d5e2ec6 --- /dev/null +++ b/Characters/EBodyBuild.cs @@ -0,0 +1,11 @@ +namespace WaifuCellar.Characters; + +public enum EBodyBuild { + Petite, + Slim, + Average, + Athletic, + Muscular, + Chubby, + Fat +} \ No newline at end of file diff --git a/Characters/EMood.cs b/Characters/EMood.cs new file mode 100644 index 0000000..1ccc1d0 --- /dev/null +++ b/Characters/EMood.cs @@ -0,0 +1,5 @@ +namespace WaifuCellar.Characters; + +public enum EMood { + +} \ No newline at end of file diff --git a/Characters/EPersonality.cs b/Characters/EPersonality.cs new file mode 100644 index 0000000..8c2827d --- /dev/null +++ b/Characters/EPersonality.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Characters; + +public enum EPersonality { + Shy, + NotShy + //TODO: Add more +} \ No newline at end of file diff --git a/IBuff.cs b/IBuff.cs new file mode 100644 index 0000000..f5984f4 --- /dev/null +++ b/IBuff.cs @@ -0,0 +1,5 @@ +namespace WaifuCellar; + +public interface IBuff { + +} \ No newline at end of file diff --git a/Part.cs b/Part.cs new file mode 100644 index 0000000..c0d9d20 --- /dev/null +++ b/Part.cs @@ -0,0 +1,8 @@ +namespace WaifuCellar; + +public abstract class Part { + public abstract List Buffs { get; set; } + public abstract Part? ParentPart { get; set; } + //Also includes limbs + public abstract List AttachedParts { get; set; } +} \ No newline at end of file diff --git a/Parts/Base/Arm.cs b/Parts/Base/Arm.cs new file mode 100644 index 0000000..6fd4188 --- /dev/null +++ b/Parts/Base/Arm.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Arm : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Breasts.cs b/Parts/Base/Breasts.cs new file mode 100644 index 0000000..d59a34c --- /dev/null +++ b/Parts/Base/Breasts.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Breasts : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Ear.cs b/Parts/Base/Ear.cs new file mode 100644 index 0000000..e73307b --- /dev/null +++ b/Parts/Base/Ear.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Ear : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Eye.cs b/Parts/Base/Eye.cs new file mode 100644 index 0000000..6818f93 --- /dev/null +++ b/Parts/Base/Eye.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Eye : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Foot.cs b/Parts/Base/Foot.cs new file mode 100644 index 0000000..dc8ac42 --- /dev/null +++ b/Parts/Base/Foot.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Foot : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Hand.cs b/Parts/Base/Hand.cs new file mode 100644 index 0000000..41e3090 --- /dev/null +++ b/Parts/Base/Hand.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Hand : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Head.cs b/Parts/Base/Head.cs new file mode 100644 index 0000000..eb2cb5b --- /dev/null +++ b/Parts/Base/Head.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Head : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Leg.cs b/Parts/Base/Leg.cs new file mode 100644 index 0000000..72b9bc4 --- /dev/null +++ b/Parts/Base/Leg.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Leg : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Mouth.cs b/Parts/Base/Mouth.cs new file mode 100644 index 0000000..a9b30aa --- /dev/null +++ b/Parts/Base/Mouth.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Mouth : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Penis.cs b/Parts/Base/Penis.cs new file mode 100644 index 0000000..86ae915 --- /dev/null +++ b/Parts/Base/Penis.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Penis : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Torso.cs b/Parts/Base/Torso.cs new file mode 100644 index 0000000..55fb11b --- /dev/null +++ b/Parts/Base/Torso.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Torso : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file diff --git a/Parts/Base/Vagina.cs b/Parts/Base/Vagina.cs new file mode 100644 index 0000000..21ee768 --- /dev/null +++ b/Parts/Base/Vagina.cs @@ -0,0 +1,7 @@ +namespace WaifuCellar.Parts.Base; + +public class Vagina : Part { + public override List Buffs { get; set; } = new(); + public override Part? ParentPart { get; set; } + public override List AttachedParts { get; set; } = new(); +} \ No newline at end of file