TeaFaris
Terrarian
Hi.
I am a beginner coder, faced such problem as " 'player' does not contain a difinition for 'SickleModPlayer' and no accessible extinsion method 'SickleModPlayer' accepting first argument of type 'Player' could not be found.
I was making class armor and wanted to add damage increase to class weapons.
I am a beginner coder, faced such problem as " 'player' does not contain a difinition for 'SickleModPlayer' and no accessible extinsion method 'SickleModPlayer' accepting first argument of type 'Player' could not be found.
I was making class armor and wanted to add damage increase to class weapons.
Code:
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ModLoader;
namespace SickleMod.Items.SickleDamageClass
{
public class SickleDamagePlayer : ModPlayer
{
public static SickleDamagePlayer ModPlayer(Player player)
{
return player.GetModPlayer<SickleDamagePlayer>();
}
public float SickleDamageAdd;
public float SickleDamageMult = 1f;
public float SickleKnockback;
public int SickleCrit;
}
}
Code:
using System.Collections.Generic;
using System.Linq;
using Terraria;
using Terraria.ModLoader;
namespace SickleMod.Items.SickleDamageClass
{
public abstract class SickleDamageItem : ModItem
{
public override bool CloneNewInstances => true;
public virtual void SafeSetDefaults()
{
}
public override void SetDefaults()
{
SafeSetDefaults();
item.melee = false;
item.ranged = false;
item.magic = false;
item.thrown = false;
item.summon = false;
}
public override void ModifyWeaponDamage(Player player, ref float add, ref float mult, ref float flat)
{
add += SickleDamagePlayer.ModPlayer(player).SickleDamageAdd;
mult *= SickleDamagePlayer.ModPlayer(player).SickleDamageMult;
}
public override void GetWeaponKnockback(Player player, ref float knockback)
{
knockback += SickleDamagePlayer.ModPlayer(player).SickleKnockback;
}
public override void GetWeaponCrit(Player player, ref int crit)
{
crit += SickleDamagePlayer.ModPlayer(player).SickleCrit;
}
public override void ModifyTooltips(List<TooltipLine> tooltips)
{
TooltipLine tt = tooltips.FirstOrDefault(x => x.Name == "Damage" && x.mod == "Terraria");
if (tt != null)
{
string[] splitText = tt.text.Split(' ');
string damageValue = splitText.First();
string damageWord = splitText.Last();
tt.text = damageValue + " reaper " + damageWord;
}
}
}
}
Code:
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
using SickleMod.Items.SickleDamageClass;
namespace SickleMod.Items.Armor
{
[AutoloadEquip(EquipType.Head)]
public class RottenHood : SickleDamageItem
{
public override void SetStaticDefaults()
{
Tooltip.SetDefault("");
}
public override void SetDefaults()
{
item.width = 18;
item.height = 18;
item.value = 10000;
item.rare = ItemRarityID.Green;
item.defense = 4;
}
public override void UpdateEquip(Player player)
{
player.SickleDamagePlayer += 0.05f;
}
public override void UpdateArmorSet (Player player)
{
//...
}
}
}