Advertisement
Krythic

RuneType

Nov 26th, 2019
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 15.70 KB | None | 0 0
  1. using System;
  2. using VoidwalkerEngine.Framework.DataTypes;
  3.  
  4. namespace VoidwalkerEngine.Framework.Logic
  5. {
  6.     public enum RuneType
  7.     {
  8.         /// <summary>
  9.         /// Rule
  10.         /// </summary>
  11.         Ayr,
  12.         /// <summary>
  13.         /// Haste
  14.         /// </summary>
  15.         Bex,
  16.         /// <summary>
  17.         /// Oath
  18.         /// </summary>
  19.         Cyth,
  20.         /// <summary>
  21.         /// Darkness
  22.         /// </summary>
  23.         Dakk,
  24.         /// <summary>
  25.         /// Might
  26.         /// </summary>
  27.         Eth,
  28.         /// <summary>
  29.         /// Force
  30.         /// </summary>
  31.         Fus,
  32.         /// <summary>
  33.         /// Guile
  34.         /// </summary>
  35.         Gex,
  36.         /// <summary>
  37.         /// Heroic
  38.         /// </summary>
  39.         Hoth,
  40.         /// <summary>
  41.         /// Grief
  42.         /// </summary>
  43.         Ith,
  44.         /// <summary>
  45.         /// Fury
  46.         /// </summary>
  47.         Jakk,
  48.         /// <summary>
  49.         /// Honor
  50.         /// </summary>
  51.         Kol,
  52.         /// <summary>
  53.         /// Chaos
  54.         /// </summary>
  55.         Loken,
  56.         /// <summary>
  57.         /// Fear
  58.         /// </summary>
  59.         Mith,
  60.         /// <summary>
  61.         /// Death
  62.         /// </summary>
  63.         Nox,
  64.         /// <summary>
  65.         /// Light
  66.         /// </summary>
  67.         Orth,
  68.         /// <summary>
  69.         /// Guidance
  70.         /// </summary>
  71.         Poth,
  72.         /// <summary>
  73.         /// Destruction
  74.         /// </summary>
  75.         Quarm,
  76.         /// <summary>
  77.         /// Sun
  78.         /// </summary>
  79.         Ro,
  80.         /// <summary>
  81.         /// Silence
  82.         /// </summary>
  83.         Syn,
  84.         /// <summary>
  85.         /// Hope
  86.         /// </summary>
  87.         Tal,
  88.         /// <summary>
  89.         /// Anguish
  90.         /// </summary>
  91.         Ur,
  92.         /// <summary>
  93.         /// Winter
  94.         /// </summary>
  95.         Vox,
  96.         /// <summary>
  97.         /// Sky
  98.         /// </summary>
  99.         Wynn,
  100.         /// <summary>
  101.         /// Fortune
  102.         /// </summary>
  103.         Xeth,
  104.         /// <summary>
  105.         /// Nature
  106.         /// </summary>
  107.         Yev,
  108.         /// <summary>
  109.         /// Eternal
  110.         /// </summary>
  111.         Zok
  112.     }
  113.  
  114.     public static class RuneCategoryExtensions
  115.     {
  116.  
  117.         public static string GetRuneHeader(this RuneType runeType)
  118.         {
  119.             switch (runeType)
  120.             {
  121.                 case RuneType.Ayr:
  122.                     return "Ayr";
  123.                 case RuneType.Bex:
  124.                     return "Bex";
  125.                 case RuneType.Cyth:
  126.                     return "Cyth";
  127.                 case RuneType.Dakk:
  128.                     return "Dakk";
  129.                 case RuneType.Eth:
  130.                     return "Eth";
  131.                 case RuneType.Fus:
  132.                     return "Fus";
  133.                 case RuneType.Gex:
  134.                     return "Gex";
  135.                 case RuneType.Hoth:
  136.                     return "Hoth";
  137.                 case RuneType.Ith:
  138.                     return "Ith";
  139.                 case RuneType.Jakk:
  140.                     return "Jakk";
  141.                 case RuneType.Kol:
  142.                     return "Kol";
  143.                 case RuneType.Loken:
  144.                     return "Lok";
  145.                 case RuneType.Mith:
  146.                     return "Mith";
  147.                 case RuneType.Nox:
  148.                     return "Nox";
  149.                 case RuneType.Orth:
  150.                     return "Orth";
  151.                 case RuneType.Poth:
  152.                     return "Poth";
  153.                 case RuneType.Quarm:
  154.                     return "Quarm";
  155.                 case RuneType.Ro:
  156.                     return "Ro";
  157.                 case RuneType.Syn:
  158.                     return "Syn";
  159.                 case RuneType.Tal:
  160.                     return "Tal";
  161.                 case RuneType.Ur:
  162.                     return "Ur";
  163.                 case RuneType.Vox:
  164.                     return "Vox";
  165.                 case RuneType.Wynn:
  166.                     return "Wynn";
  167.                 case RuneType.Xeth:
  168.                     return "Xeth";
  169.                 case RuneType.Yev:
  170.                     return "Yev";
  171.                 case RuneType.Zok:
  172.                     return "Zok";
  173.                 default:
  174.                     throw new Exception("No matching Name for RuneType: " + (int)runeType);
  175.             }
  176.         }
  177.  
  178.         public static string GetFlavorText(this RuneType runeType)
  179.         {
  180.             switch (runeType)
  181.             {
  182.                 case RuneType.Ayr:
  183.                     return "Rule";
  184.                 case RuneType.Bex:
  185.                     return "Haste";
  186.                 case RuneType.Cyth:
  187.                     return "Oath";
  188.                 case RuneType.Dakk:
  189.                     return "Darkness";
  190.                 case RuneType.Eth:
  191.                     return "Might";
  192.                 case RuneType.Fus:
  193.                     return "Force";
  194.                 case RuneType.Gex:
  195.                     return "Guile";
  196.                 case RuneType.Hoth:
  197.                     return "Heroic";
  198.                 case RuneType.Ith:
  199.                     return "Grief";
  200.                 case RuneType.Jakk:
  201.                     return "Fury";
  202.                 case RuneType.Kol:
  203.                     return "Honor";
  204.                 case RuneType.Loken:
  205.                     return "Chaos";
  206.                 case RuneType.Mith:
  207.                     return "Fear";
  208.                 case RuneType.Nox:
  209.                     return "Death";
  210.                 case RuneType.Orth:
  211.                     return "Light";
  212.                 case RuneType.Poth:
  213.                     return "Guidance";
  214.                 case RuneType.Quarm:
  215.                     return "Destruction";
  216.                 case RuneType.Ro:
  217.                     return "Sun";
  218.                 case RuneType.Syn:
  219.                     return "Silence";
  220.                 case RuneType.Tal:
  221.                     return "Hope";
  222.                 case RuneType.Ur:
  223.                     return "Anguish";
  224.                 case RuneType.Vox:
  225.                     return "Winter";
  226.                 case RuneType.Wynn:
  227.                     return "Sky";
  228.                 case RuneType.Xeth:
  229.                     return "Fortune";
  230.                 case RuneType.Yev:
  231.                     return "Nature";
  232.                 case RuneType.Zok:
  233.                     return "Eternal";
  234.                 default:
  235.                     throw new Exception("No matching Flavor Text for RuneType: " + (int)runeType);
  236.             }
  237.         }
  238.  
  239.         public static int GetItemLevel(this RuneType runeType)
  240.         {
  241.             /**
  242.              * Edit this later, but for now, all Runes will be level 5
  243.              */
  244.             return 5;
  245.         }
  246.  
  247.         public static GamePrice GetBaseSellPrice(this RuneType runeType)
  248.         {
  249.             /**
  250.              * Edit this later, but for now, all Runes will be worth 25 silver.
  251.              */
  252.             return new GamePrice(0, 25, 0);
  253.         }
  254.  
  255.         public static void GetModifiers(this RuneType runeType, out
  256.             ItemModifier weaponModifier, out ItemModifier armorModifier, out ItemModifier shieldModifier)
  257.         {
  258.             switch (runeType)
  259.             {
  260.                 case RuneType.Ayr:
  261.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  262.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  263.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  264.                     break;
  265.                 case RuneType.Bex:
  266.                     weaponModifier = new ItemModifier(ItemModifierTrait.SonicDamage, 10);
  267.                     armorModifier = new ItemModifier(ItemModifierTrait.Mobility, 1);
  268.                     shieldModifier = new ItemModifier(ItemModifierTrait.EnhancedBlockChance, 4);
  269.                     break;
  270.                 case RuneType.Cyth:
  271.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  272.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  273.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  274.                     break;
  275.                 case RuneType.Dakk:
  276.                     weaponModifier = new ItemModifier(ItemModifierTrait.ShadowDamage, 10);
  277.                     armorModifier = new ItemModifier(ItemModifierTrait.HolyResistance, 5);
  278.                     shieldModifier = new ItemModifier(ItemModifierTrait.HolyResistance, 5);
  279.                     break;
  280.                 case RuneType.Eth:
  281.                     weaponModifier = new ItemModifier(ItemModifierTrait.EnhancedWeaponDamage, 10);
  282.                     armorModifier = new ItemModifier(ItemModifierTrait.EnhancedDurability, 25);
  283.                     shieldModifier = new ItemModifier(ItemModifierTrait.EnhancedDurability, 25);
  284.                     break;
  285.                 case RuneType.Fus:
  286.                     weaponModifier = new ItemModifier(ItemModifierTrait.ManaOnKill, 2);
  287.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  288.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  289.                     break;
  290.                 case RuneType.Gex:
  291.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  292.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  293.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  294.                     break;
  295.                 case RuneType.Hoth:
  296.                     weaponModifier = new ItemModifier(ItemModifierTrait.HealthOnKill, 2);
  297.                     armorModifier = new ItemModifier(ItemModifierTrait.EnhancedArmorRating, 5);
  298.                     shieldModifier = new ItemModifier(ItemModifierTrait.EnhancedArmorRating, 5);
  299.                     break;
  300.                 case RuneType.Ith:
  301.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  302.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  303.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  304.                     break;
  305.                 case RuneType.Jakk:
  306.                     weaponModifier = new ItemModifier(ItemModifierTrait.EnergyOnKill, 2);
  307.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  308.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  309.                     break;
  310.                 case RuneType.Kol:
  311.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  312.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  313.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  314.                     break;
  315.                 case RuneType.Loken:
  316.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  317.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  318.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  319.                     break;
  320.                 case RuneType.Mith:
  321.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  322.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  323.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  324.                     break;
  325.                 case RuneType.Nox:
  326.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  327.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  328.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  329.                     break;
  330.                 case RuneType.Orth:
  331.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0);
  332.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0);
  333.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0);
  334.                     break;
  335.                 case RuneType.Poth:
  336.                     weaponModifier = new ItemModifier(ItemModifierTrait.DamageVsDemons, 10);
  337.                     armorModifier = new ItemModifier(ItemModifierTrait.ManaRegeneration, 1);
  338.                     shieldModifier = new ItemModifier(ItemModifierTrait.ManaRegeneration, 1);
  339.                     break;
  340.                 case RuneType.Quarm:
  341.                     weaponModifier = new ItemModifier(ItemModifierTrait.KnockbackOnStrike, 10);
  342.                     armorModifier = new ItemModifier(ItemModifierTrait.KnockbackWhenStruck, 10);
  343.                     shieldModifier = new ItemModifier(ItemModifierTrait.KnockbackWhenStruck, 10);
  344.                     break;
  345.                 case RuneType.Ro:
  346.                     weaponModifier = new ItemModifier(ItemModifierTrait.DamageVsUndead, 25);
  347.                     armorModifier = new ItemModifier(ItemModifierTrait.FrostResistance, 10);
  348.                     shieldModifier = new ItemModifier(ItemModifierTrait.FrostResistance, 10);
  349.                     break;
  350.                 case RuneType.Syn:
  351.                     weaponModifier = new ItemModifier(ItemModifierTrait.None, 0); // Inflict Silence
  352.                     armorModifier = new ItemModifier(ItemModifierTrait.None, 0); // Resist Silence
  353.                     shieldModifier = new ItemModifier(ItemModifierTrait.None, 0); // Resist Silence
  354.                     break;
  355.                 case RuneType.Tal:
  356.                     weaponModifier = new ItemModifier(ItemModifierTrait.MagicFind, 5);
  357.                     armorModifier = new ItemModifier(ItemModifierTrait.MagicFind, 5);
  358.                     shieldModifier = new ItemModifier(ItemModifierTrait.MagicFind, 5);
  359.                     break;
  360.                 case RuneType.Ur:
  361.                     weaponModifier = new ItemModifier(ItemModifierTrait.Spirit, 5);
  362.                     armorModifier = new ItemModifier(ItemModifierTrait.Spirit, 5);
  363.                     shieldModifier = new ItemModifier(ItemModifierTrait.Spirit, 5);
  364.                     break;
  365.                 case RuneType.Vox:
  366.                     weaponModifier = new ItemModifier(ItemModifierTrait.FrostDamage, 10);
  367.                     armorModifier = new ItemModifier(ItemModifierTrait.FireResistance, 5);
  368.                     shieldModifier = new ItemModifier(ItemModifierTrait.FireResistance, 5);
  369.                     break;
  370.                 case RuneType.Wynn:
  371.                     weaponModifier = new ItemModifier(ItemModifierTrait.ExperienceGained, 5);
  372.                     armorModifier = new ItemModifier(ItemModifierTrait.ExperienceGained, 5);
  373.                     shieldModifier = new ItemModifier(ItemModifierTrait.ExperienceGained, 5);
  374.                     break;
  375.                 case RuneType.Xeth:
  376.                     weaponModifier = new ItemModifier(ItemModifierTrait.MoneyFind, 5);
  377.                     armorModifier = new ItemModifier(ItemModifierTrait.MoneyFind, 5);
  378.                     shieldModifier = new ItemModifier(ItemModifierTrait.MoneyFind, 5);
  379.                     break;
  380.                 case RuneType.Yev:
  381.                     weaponModifier = new ItemModifier(ItemModifierTrait.NatureDamage, 5);
  382.                     armorModifier = new ItemModifier(ItemModifierTrait.EnergyRegeneration, 1);
  383.                     shieldModifier = new ItemModifier(ItemModifierTrait.EnergyRegeneration, 1);
  384.                     break;
  385.                 case RuneType.Zok:
  386.                     weaponModifier = new ItemModifier(ItemModifierTrait.Indestructible);
  387.                     armorModifier = new ItemModifier(ItemModifierTrait.Indestructible);
  388.                     shieldModifier = new ItemModifier(ItemModifierTrait.Indestructible);
  389.                     break;
  390.                 default:
  391.                     throw new Exception();
  392.             }
  393.         }
  394.     }
  395. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement