mirror of
https://github.com/YouHaveTrouble/YHTMod.git
synced 2026-05-11 21:56:54 +00:00
an attempt at increasing melee weapon size
This commit is contained in:
@@ -0,0 +1,53 @@
|
|||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Terraria;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
|
||||||
|
namespace YHTMod.Changes;
|
||||||
|
|
||||||
|
public class WarriorItemEffects : GlobalItem {
|
||||||
|
|
||||||
|
public override bool InstancePerEntity => true;
|
||||||
|
|
||||||
|
public override void UseItemHitbox(Item item, Player player, ref Rectangle hitbox, ref bool noHitbox) {
|
||||||
|
YhtPlayer modPlayer = player.GetModPlayer<YhtPlayer>();
|
||||||
|
|
||||||
|
if (!modPlayer.WarriorAmbition) {
|
||||||
|
base.UseItemHitbox(item, player, ref hitbox, ref noHitbox);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.DamageType == DamageClass.Melee && !item.noMelee) {
|
||||||
|
float scale = modPlayer.GetWarriorsAmbitionMeleeSizeBonus();
|
||||||
|
if (scale > 1f) {
|
||||||
|
int newW = (int)(hitbox.Width * scale);
|
||||||
|
int newH = (int)(hitbox.Height * scale);
|
||||||
|
int cx = hitbox.X + hitbox.Width / 2;
|
||||||
|
int cy = hitbox.Y + hitbox.Height / 2;
|
||||||
|
hitbox.X = cx - newW / 2;
|
||||||
|
hitbox.Y = cy - newH / 2;
|
||||||
|
hitbox.Width = newW;
|
||||||
|
hitbox.Height = newH;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.UseItemHitbox(item, player, ref hitbox, ref noHitbox);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HoldItem(Item item, Player player) {
|
||||||
|
YhtPlayer modPlayer = player.GetModPlayer<YhtPlayer>();
|
||||||
|
|
||||||
|
if (!modPlayer.WarriorAmbition) {
|
||||||
|
base.HoldItem(item, player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.DamageType == DamageClass.Melee && !item.noMelee) {
|
||||||
|
float sizeBonus = modPlayer.GetWarriorsAmbitionMeleeSizeBonus();
|
||||||
|
if (sizeBonus >= 1f)
|
||||||
|
{
|
||||||
|
item.scale *= sizeBonus;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
base.HoldItem(item, player);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -65,6 +65,12 @@ public class YhtPlayer : ModPlayer {
|
|||||||
}
|
}
|
||||||
if (WarriorAmbition) {
|
if (WarriorAmbition) {
|
||||||
Player.AddBuff(ModContent.BuffType<WarriorAmbitionBuff>(), 1);
|
Player.AddBuff(ModContent.BuffType<WarriorAmbitionBuff>(), 1);
|
||||||
|
Player.statDefense += GetWarriorsAmbitionDefenseBonus();
|
||||||
|
|
||||||
|
if (ModLoader.HasMod("CalamityMod") && SummonerAmbitions.Contains("desert_scourge")) {
|
||||||
|
Player.statLifeMax2 += 10;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,6 +115,14 @@ public class YhtPlayer : ModPlayer {
|
|||||||
|
|
||||||
public int GetWarriorsAmbitionDefenseBonus() {
|
public int GetWarriorsAmbitionDefenseBonus() {
|
||||||
int amount = 2;
|
int amount = 2;
|
||||||
|
|
||||||
|
if (ModLoader.HasMod("CalamityMod") && SummonerAmbitions.Contains("perforators")) {
|
||||||
|
amount += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ModLoader.HasMod("CalamityMod") && SummonerAmbitions.Contains("hive_mind")) {
|
||||||
|
amount += 2;
|
||||||
|
}
|
||||||
|
|
||||||
if (WarriorAmbitions.Contains("wall_of_flesh")) {
|
if (WarriorAmbitions.Contains("wall_of_flesh")) {
|
||||||
amount += 5;
|
amount += 5;
|
||||||
@@ -116,4 +130,23 @@ public class YhtPlayer : ModPlayer {
|
|||||||
|
|
||||||
return amount;
|
return amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float GetWarriorsAmbitionMeleeSizeBonus() {
|
||||||
|
float scale = 1f;
|
||||||
|
|
||||||
|
if (WarriorAmbitions.Contains("king_slime")) {
|
||||||
|
if (ModLoader.HasMod("CalamityMod")) {
|
||||||
|
scale += 0.025f;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
scale += 0.05f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ModLoader.HasMod("CalamityMod") && WarriorAmbitions.Contains("slime_god")) {
|
||||||
|
scale += 0.025f;
|
||||||
|
}
|
||||||
|
|
||||||
|
return scale;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user