Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.Generic;
- using Terraria;
- using Terraria.ModLoader;
- namespace TestMod
- {
- public static class prefs_api
- {
- static pref _pref { get; set; }
- public static pref get_prefix(this Item item) { return _pref; }
- public static void set_prefix(this Item item, pref prefix)
- {
- _pref = prefix;
- item.name = prefix.name + " " + item.name;
- item.damage += (int)(item.damage * prefix.bonus["damage"]);
- item.crit += (int)(item.crit * prefix.bonus["crit"]);
- item.useAnimation -= (int)(item.useAnimation * prefix.bonus["use_speed"]);
- item.useTime -= (int)(item.useTime * prefix.bonus["use_speed"]);
- item.shootSpeed += item.shootSpeed * prefix.bonus["use_speed"];
- item.knockBack += item.knockBack * prefix.bonus["knockback"];
- item.scale += prefix.bonus["scale"];
- item.healLife += (int)(item.healLife * prefix.bonus["heal"]);
- item.healMana += (int)(item.healMana * prefix.bonus["heal_mana"]);
- item.pick += (int)(item.pick * prefix.bonus["pickaxe"]);
- item.axe += (int)(item.axe * prefix.bonus["axe"]);
- item.hammer += (int)(item.hammer * prefix.bonus["hammer"]);
- item.value += (int)(item.value * prefix.bonus["value"]);
- item.defense += prefix.extra_defense + (int)(item.defense * prefix.bonus["defense"]);
- item.buffType = prefix.buff_bonus; item.buffTime = 60;
- item.rare += prefix.extra_rare;
- }
- }
- public class pref_item : GlobalItem
- {
- public override void SetDefaults(Item item)
- {
- item.prefix = 0;
- item.set_prefix(new pref("Quick"));
- }
- public override void UpdateAccessory(Item item, Player player, bool hideVisual)
- {
- player.statLifeMax += item.get_prefix().extra_max_life;
- player.statManaMax += item.get_prefix().extra_max_mana;
- player.arrowDamage += item.get_prefix().bonus["plr_damage"];
- player.thrownDamage += item.get_prefix().bonus["plr_damage"];
- player.rangedDamage += item.get_prefix().bonus["plr_damage"];
- player.rocketDamage += item.get_prefix().bonus["plr_damage"];
- player.minionDamage += item.get_prefix().bonus["plr_damage"];
- player.meleeDamage += item.get_prefix().bonus["plr_damage"];
- player.magicDamage += item.get_prefix().bonus["plr_damage"];
- player.bulletDamage += item.get_prefix().bonus["plr_damage"];
- player.meleeSpeed += item.get_prefix().bonus["plr_use_speed"];
- player.moveSpeed += item.get_prefix().bonus["plr_speed"];
- }
- public override void UpdateEquip(Item item, Player player)
- {
- player.statLifeMax += item.get_prefix().extra_max_life;
- player.statManaMax += item.get_prefix().extra_max_mana;
- player.arrowDamage += item.get_prefix().bonus["plr_damage"];
- player.thrownDamage += item.get_prefix().bonus["plr_damage"];
- player.rangedDamage += item.get_prefix().bonus["plr_damage"];
- player.rocketDamage += item.get_prefix().bonus["plr_damage"];
- player.minionDamage += item.get_prefix().bonus["plr_damage"];
- player.meleeDamage += item.get_prefix().bonus["plr_damage"];
- player.magicDamage += item.get_prefix().bonus["plr_damage"];
- player.bulletDamage += item.get_prefix().bonus["plr_damage"];
- player.meleeSpeed += item.get_prefix().bonus["plr_use_speed"];
- player.moveSpeed += item.get_prefix().bonus["plr_speed"];
- }
- }
- public struct pref
- {
- public string name;
- public Dictionary<string, float> bonus;
- public int extra_rare, extra_defense, buff_bonus, extra_max_life, extra_max_mana;
- public bool auto_reuse_bonus;
- public pref(string name_)
- {
- name = " ";
- buff_bonus = extra_defense = extra_rare = extra_max_life = extra_max_mana = 0;
- auto_reuse_bonus = false;
- bonus = new Dictionary<string, float>
- {
- ["damage"] = 0f,
- ["crit"] = 0f,
- ["use_speed"] = 0f,
- ["heal"] = 0f,
- ["mana_cost"] = 0f,
- ["knockback"] = 0f,
- ["defense"] = 0f,
- ["scale"] = 0f,
- ["pickaxe"] = 0f,
- ["axe"] = 0f,
- ["hammer"] = 0f,
- ["heal_mana"] = 0f,
- ["value"] = 0f,
- ["plr_damage"] = 0f,
- ["plr_speed"] = 0f,
- ["plr_use_speed"] = 0f
- };
- switch(name_)
- {
- #region accessory
- case "Hard":
- extra_defense = 1;
- bonus["value"] = 0.1025f;
- break;
- case "Guarding":
- extra_defense = 2;
- extra_rare = 1;
- bonus["value"] = 0.21f;
- break;
- case "Armored":
- extra_defense = 3;
- extra_rare = 1;
- bonus["value"] = 0.3225f;
- break;
- case "Warding":
- extra_defense = 4;
- extra_rare = 2;
- bonus["value"] = 0.44f;
- break;
- case "Arcane":
- extra_max_mana = 20;
- extra_rare = 1;
- bonus["value"] = 0.3225f;
- break;
- case "Precise":
- bonus["crit"] = 0.02f;
- extra_rare = 1;
- bonus["value"] = 0.21f;
- break;
- case "Lucky":
- bonus["crit"] = 0.04f;
- extra_rare = 2;
- bonus["value"] = 0.44f;
- break;
- case "Jagged":
- bonus["plr_damage"] = 0.01f;
- bonus["value"] = 0.1025f;
- break;
- case "Spiked":
- bonus["plr_damage"] = 0.02f;
- extra_rare = 1;
- bonus["value"] = 0.21f;
- break;
- case "Angry":
- bonus["plr_damage"] = 0.03f;
- extra_rare = 1;
- bonus["value"] = 0.3225f;
- break;
- case "Menacing":
- bonus["plr_damage"] = 0.04f;
- extra_rare = 2;
- bonus["value"] = 0.44f;
- break;
- case "Brisk":
- bonus["plr_speed"] = 0.01f;
- bonus["value"] = 0.1025f;
- break;
- case "Fleeting":
- bonus["plr_speed"] = 0.02f;
- extra_rare = 1;
- bonus["value"] = 0.21f;
- break;
- case "Hasty":
- bonus["plr_speed"] = 0.03f;
- extra_rare = 1;
- bonus["value"] = 0.3225f;
- break;
- case "Quick":
- bonus["plr_speed"] = 0.04f;
- extra_rare = 2;
- bonus["value"] = 0.44f;
- break;
- case "Wild":
- bonus["plr_use_speed"] = 0.01f;
- bonus["value"] = 0.1025f;
- break;
- case "Rash":
- bonus["plr_use_speed"] = 0.02f;
- extra_rare = 1;
- bonus["value"] = 0.21f;
- break;
- case "Intrepid":
- bonus["plr_use_speed"] = 0.03f;
- extra_rare = 1;
- bonus["value"] = 0.3225f;
- break;
- case "Violent":
- bonus["plr_use_speed"] = 0.04f;
- extra_rare = 2;
- bonus["value"] = 0.44f;
- break;
- #endregion
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement