Skip to content
This repository has been archived by the owner on Jan 24, 2019. It is now read-only.

Commit

Permalink
Added crit and knockback for alchemical weapons
Browse files Browse the repository at this point in the history
Improved tooltip code
  • Loading branch information
Jofairden committed Sep 12, 2017
1 parent ba9a791 commit 15e5b21
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 16 deletions.
35 changes: 20 additions & 15 deletions AlchemistItem.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ModLoader;
Expand All @@ -7,6 +8,19 @@ namespace Tremor
{
public abstract class AlchemistItem : ModItem
{
public override void GetWeaponKnockback(Player player, ref float knockback)
{
MPlayer modPlayer = player.GetModPlayer<MPlayer>(mod);
knockback += modPlayer.alchemicalKbAddition;
knockback *= modPlayer.alchemicalKbMult;
}

public override void GetWeaponCrit(Player player, ref int crit)
{
MPlayer modPlayer = player.GetModPlayer<MPlayer>(mod);
crit += modPlayer.alchemicalCrit;
}

public override void GetWeaponDamage(Player player, ref int damage)
{
MPlayer modPlayer = player.GetModPlayer<MPlayer>(mod);
Expand All @@ -17,23 +31,14 @@ public override void GetWeaponDamage(Player player, ref int damage)

public override void ModifyTooltips(List<TooltipLine> tooltips)
{
MPlayer modPlayer = Main.LocalPlayer.GetModPlayer<MPlayer>(mod);

foreach (TooltipLine tooltip in tooltips)
var tt = tooltips.FirstOrDefault(x => x.Name == "Damage" && x.mod == "Terraria");
if (tt != null)
{
if (tooltip.Name == "Damage")
{
tooltip.text = (int)(item.damage * modPlayer.alchemicalDamage) + " alchemical damage";
}

if (tooltip.Name == "CritChance")
{
tooltip.text = item.crit + modPlayer.alchemicalCrit + "% critical strike chance";
}
// take reverse for 'damage', grab translation
var split = tt.text.Split(' ');
// todo: translation alchemical
tt.text = split.First() + " alchemical " + split.Last();
}

TooltipLine tip = new TooltipLine(mod, "Tremor:Tooltip", (item.crit + modPlayer.alchemicalCrit) + "% critical strike chance");
tooltips.Insert(2, tip);
}

public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
Expand Down
6 changes: 5 additions & 1 deletion MPlayer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ public static MPlayer GetModPlayer(Player player)

// Alchemist
public float alchemicalDamage;
public float alchemicalKbAddition;
public float alchemicalKbMult;
public int alchemicalCrit;

// Undocumented
Expand All @@ -34,7 +36,9 @@ public override void ResetEffects()
fragileContiion = false;

// Alchemist
alchemicalDamage = 1;
alchemicalDamage = 1f;
alchemicalKbAddition = 0f;
alchemicalKbMult = 1f;
alchemicalCrit = 0;

// Undocumented
Expand Down

0 comments on commit 15e5b21

Please sign in to comment.