Advertisement
Guest User

PrefixAPI

a guest
Apr 30th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.27 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using Terraria;
  3. using Terraria.ModLoader;
  4.  
  5. namespace TestMod
  6. {
  7.     public static class prefs_api
  8.     {
  9.         static pref _pref { get; set; }
  10.  
  11.         public static pref get_prefix(this Item item) { return _pref; }
  12.  
  13.         public static void set_prefix(this Item item, pref prefix)
  14.         {
  15.             _pref = prefix;
  16.             item.name = prefix.name + " " + item.name;
  17.             item.damage += (int)(item.damage * prefix.bonus["damage"]);
  18.             item.crit += (int)(item.crit * prefix.bonus["crit"]);
  19.             item.useAnimation -= (int)(item.useAnimation * prefix.bonus["use_speed"]);
  20.             item.useTime -= (int)(item.useTime * prefix.bonus["use_speed"]);
  21.             item.shootSpeed += item.shootSpeed * prefix.bonus["use_speed"];
  22.             item.knockBack += item.knockBack * prefix.bonus["knockback"];
  23.             item.scale += prefix.bonus["scale"];
  24.             item.healLife += (int)(item.healLife * prefix.bonus["heal"]);
  25.             item.healMana += (int)(item.healMana * prefix.bonus["heal_mana"]);
  26.             item.pick += (int)(item.pick * prefix.bonus["pickaxe"]);
  27.             item.axe += (int)(item.axe * prefix.bonus["axe"]);
  28.             item.hammer += (int)(item.hammer * prefix.bonus["hammer"]);
  29.             item.value += (int)(item.value * prefix.bonus["value"]);
  30.             item.defense += prefix.extra_defense + (int)(item.defense * prefix.bonus["defense"]);
  31.             item.buffType = prefix.buff_bonus; item.buffTime = 60;
  32.             item.rare += prefix.extra_rare;
  33.         }
  34.     }
  35.     public class pref_item : GlobalItem
  36.     {
  37.         public override void SetDefaults(Item item)
  38.         {
  39.             item.prefix = 0;
  40.             item.set_prefix(new pref("Quick"));
  41.         }
  42.  
  43.         public override void UpdateAccessory(Item item, Player player, bool hideVisual)
  44.         {
  45.             player.statLifeMax += item.get_prefix().extra_max_life;
  46.             player.statManaMax += item.get_prefix().extra_max_mana;
  47.             player.arrowDamage += item.get_prefix().bonus["plr_damage"];
  48.             player.thrownDamage += item.get_prefix().bonus["plr_damage"];
  49.             player.rangedDamage += item.get_prefix().bonus["plr_damage"];
  50.             player.rocketDamage += item.get_prefix().bonus["plr_damage"];
  51.             player.minionDamage += item.get_prefix().bonus["plr_damage"];
  52.             player.meleeDamage += item.get_prefix().bonus["plr_damage"];
  53.             player.magicDamage += item.get_prefix().bonus["plr_damage"];
  54.             player.bulletDamage += item.get_prefix().bonus["plr_damage"];
  55.             player.meleeSpeed += item.get_prefix().bonus["plr_use_speed"];
  56.             player.moveSpeed += item.get_prefix().bonus["plr_speed"];
  57.         }
  58.  
  59.         public override void UpdateEquip(Item item, Player player)
  60.         {
  61.             player.statLifeMax += item.get_prefix().extra_max_life;
  62.             player.statManaMax += item.get_prefix().extra_max_mana;
  63.             player.arrowDamage += item.get_prefix().bonus["plr_damage"];
  64.             player.thrownDamage += item.get_prefix().bonus["plr_damage"];
  65.             player.rangedDamage += item.get_prefix().bonus["plr_damage"];
  66.             player.rocketDamage += item.get_prefix().bonus["plr_damage"];
  67.             player.minionDamage += item.get_prefix().bonus["plr_damage"];
  68.             player.meleeDamage += item.get_prefix().bonus["plr_damage"];
  69.             player.magicDamage += item.get_prefix().bonus["plr_damage"];
  70.             player.bulletDamage += item.get_prefix().bonus["plr_damage"];
  71.             player.meleeSpeed += item.get_prefix().bonus["plr_use_speed"];
  72.             player.moveSpeed += item.get_prefix().bonus["plr_speed"];
  73.         }
  74.     }
  75.     public struct pref
  76.     {
  77.         public string name;
  78.         public Dictionary<string, float> bonus;
  79.         public int extra_rare, extra_defense, buff_bonus, extra_max_life, extra_max_mana;
  80.         public bool auto_reuse_bonus;
  81.  
  82.         public pref(string name_)
  83.         {
  84.             name = " ";
  85.             buff_bonus = extra_defense = extra_rare = extra_max_life = extra_max_mana = 0;
  86.             auto_reuse_bonus = false;
  87.             bonus = new Dictionary<string, float>
  88.             {
  89.                 ["damage"] = 0f,
  90.                 ["crit"] = 0f,
  91.                 ["use_speed"] = 0f,
  92.                 ["heal"] = 0f,
  93.                 ["mana_cost"] = 0f,
  94.                 ["knockback"] = 0f,
  95.                 ["defense"] = 0f,
  96.                 ["scale"] = 0f,
  97.                 ["pickaxe"] = 0f,
  98.                 ["axe"] = 0f,
  99.                 ["hammer"] = 0f,
  100.                 ["heal_mana"] = 0f,
  101.                 ["value"] = 0f,
  102.                 ["plr_damage"] = 0f,
  103.                 ["plr_speed"] = 0f,
  104.                 ["plr_use_speed"] = 0f
  105.             };
  106.             switch(name_)
  107.             {
  108.                 #region accessory
  109.                 case "Hard":
  110.                     extra_defense = 1;
  111.                     bonus["value"] = 0.1025f;
  112.                     break;
  113.                 case "Guarding":
  114.                     extra_defense = 2;
  115.                     extra_rare = 1;
  116.                     bonus["value"] = 0.21f;
  117.                     break;
  118.                 case "Armored":
  119.                     extra_defense = 3;
  120.                     extra_rare = 1;
  121.                     bonus["value"] = 0.3225f;
  122.                     break;
  123.                 case "Warding":
  124.                     extra_defense = 4;
  125.                     extra_rare = 2;
  126.                     bonus["value"] = 0.44f;
  127.                     break;
  128.                 case "Arcane":
  129.                     extra_max_mana = 20;
  130.                     extra_rare = 1;
  131.                     bonus["value"] = 0.3225f;
  132.                     break;
  133.                 case "Precise":
  134.                     bonus["crit"] = 0.02f;
  135.                     extra_rare = 1;
  136.                     bonus["value"] = 0.21f;
  137.                     break;
  138.                 case "Lucky":
  139.                     bonus["crit"] = 0.04f;
  140.                     extra_rare = 2;
  141.                     bonus["value"] = 0.44f;
  142.                     break;
  143.                 case "Jagged":
  144.                     bonus["plr_damage"] = 0.01f;
  145.                     bonus["value"] = 0.1025f;
  146.                     break;
  147.                 case "Spiked":
  148.                     bonus["plr_damage"] = 0.02f;
  149.                     extra_rare = 1;
  150.                     bonus["value"] = 0.21f;
  151.                     break;
  152.                 case "Angry":
  153.                     bonus["plr_damage"] = 0.03f;
  154.                     extra_rare = 1;
  155.                     bonus["value"] = 0.3225f;
  156.                     break;
  157.                 case "Menacing":
  158.                     bonus["plr_damage"] = 0.04f;
  159.                     extra_rare = 2;
  160.                     bonus["value"] = 0.44f;
  161.                     break;
  162.                 case "Brisk":
  163.                     bonus["plr_speed"] = 0.01f;
  164.                     bonus["value"] = 0.1025f;
  165.                     break;
  166.                 case "Fleeting":
  167.                     bonus["plr_speed"] = 0.02f;
  168.                     extra_rare = 1;
  169.                     bonus["value"] = 0.21f;
  170.                     break;
  171.                 case "Hasty":
  172.                     bonus["plr_speed"] = 0.03f;
  173.                     extra_rare = 1;
  174.                     bonus["value"] = 0.3225f;
  175.                     break;
  176.                 case "Quick":
  177.                     bonus["plr_speed"] = 0.04f;
  178.                     extra_rare = 2;
  179.                     bonus["value"] = 0.44f;
  180.                     break;
  181.                 case "Wild":
  182.                     bonus["plr_use_speed"] = 0.01f;
  183.                     bonus["value"] = 0.1025f;
  184.                     break;
  185.                 case "Rash":
  186.                     bonus["plr_use_speed"] = 0.02f;
  187.                     extra_rare = 1;
  188.                     bonus["value"] = 0.21f;
  189.                     break;
  190.                 case "Intrepid":
  191.                     bonus["plr_use_speed"] = 0.03f;
  192.                     extra_rare = 1;
  193.                     bonus["value"] = 0.3225f;
  194.                     break;
  195.                 case "Violent":
  196.                     bonus["plr_use_speed"] = 0.04f;
  197.                     extra_rare = 2;
  198.                     bonus["value"] = 0.44f;
  199.                     break;
  200.                     #endregion
  201.             }
  202.         }
  203.     }
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement