Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.Generic;
- using System.Linq;
- using VoidwalkerEngine.Framework.Collections;
- using VoidwalkerEngine.Framework.DataTypes;
- using VoidwalkerEngine.Framework.Logic;
- using VoidwalkerEngine.Framework.Systems.Items.Augmentations;
- using VoidwalkerEngine.Framework.Systems.Items.Templates;
- namespace VoidwalkerEngine.Framework.Systems.Items.Runewords
- {
- public static class RunewordManager
- {
- public static List<RunewordTemplate> Runewords;
- static RunewordManager()
- {
- InitializeRunewords();
- }
- public static RunewordTemplate GetRuneword(List<Rune> runes, ItemConstraint itemCandidate)
- {
- if(runes == null)
- {
- return null;
- }
- List<RuneType> runeTypes = new List<RuneType>();
- foreach(Rune rune in runes)
- {
- runeTypes.Add(rune.RuneType);
- }
- foreach (RunewordTemplate template in Runewords)
- {
- if (template.ItemConstraints.Contains(itemCandidate))
- {
- if (Enumerable.SequenceEqual(template.RuneRequirements, runeTypes))
- {
- return template;
- }
- }
- }
- return null;
- }
- private static void InitializeRunewords()
- {
- Runewords = new List<RunewordTemplate>
- {
- /**
- * Weapon Runewords
- */
- new RunewordTemplate() {
- Header = "Harbinger",
- RuneRequirements = new List<RuneType>(){
- RuneType.Loken, // Chaos
- RuneType.Quarm, // Destruction
- RuneType.Dakk }, // Darkness
- ItemConstraints = new List<ItemConstraint>()
- {
- ItemConstraint.OneHandedSword,
- ItemConstraint.TwoHandedSword,
- ItemConstraint.OneHandedAxe,
- ItemConstraint.TwoHandedAxe,
- ItemConstraint.OneHandedMace,
- ItemConstraint.TwoHandedMace
- },
- Modifiers = new ItemModifierList()
- {
- new ItemModifier(ItemModifierTrait.EnhancedWeaponDamage,40),
- new ItemModifier(ItemModifierTrait.Strength,10),
- new ItemModifier(ItemModifierTrait.ShadowDamage,50),
- new ItemModifier(ItemModifierTrait.Mobility,1),
- new ItemModifier(ItemModifierTrait.HealthOnKill,4),
- }
- },
- new RunewordTemplate() {
- Header = "Exile's End",
- RuneRequirements = new List<RuneType>()
- {
- RuneType.Ith, // Grief
- RuneType.Poth // Guidance
- },
- ItemConstraints = new List<ItemConstraint>()
- {
- ItemConstraint.LightFootwear,
- ItemConstraint.MediumFootwear,
- ItemConstraint.HeavyFootwear
- },
- Modifiers = new ItemModifierList()
- {
- new ItemModifier(ItemModifierTrait.EnhancedArmorRating,25),
- new ItemModifier(ItemModifierTrait.EnhancedDurability,25),
- new ItemModifier(ItemModifierTrait.ExperienceGained,10)
- }
- }
- };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement