Skip to content

Commit

Permalink
Update to v0.1.1
Browse files Browse the repository at this point in the history
1. New accessories added:
* Crimson Seed Talisman (Versions: 0, +1)
* Cerulean Seed Talisman (Versions: 0, +1)
* Crimson and Cerulean Seed Talisman

* Crimson Amber Medallion (Versions: 0, +1, +2, +3)
* Cerulean Amber Medallion (Versions: 0, +1, +2, +3)
* Crimson and Cerulean Amber Medallion

2. Crafting Changes:
* Somber Ancient Dragon Smithing Stone: Reduced the number of Shroomite and Spectre Bars from 15 to 12
* Somber Smithing Stones [9]: Reduced the number of Chlorophyte Bar from 15 to 12

3. Updates for Radan's Great Rune:
* Now increases the maximal amount of health relative to the base amount of health, not "buffed"

4. Fixed errors in Russian localization
  • Loading branch information
rzc0d3r authored Sep 28, 2024
1 parent a54ebd5 commit e3bd4b4
Show file tree
Hide file tree
Showing 27 changed files with 777 additions and 10 deletions.
27 changes: 26 additions & 1 deletion Common/Players/ERIPlayer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,21 @@ public class ERIPlayer : ModPlayer
{
public bool Blessed = false;
public bool WeaponImbueBlackFlame = false;
public bool CrimsonSeedTalismanIsActive = false;
public bool CeruleanSeedTalismanIsActive = false;
public float HealingPotionMultiplier = 1f;
public float ManaPotionMultiplier = 1f;
public float ManaReduce = 0f;

public override void ResetEffects()
{
WeaponImbueBlackFlame = false;
}
HealingPotionMultiplier = 1f;
ManaPotionMultiplier = 1f;
CrimsonSeedTalismanIsActive = false;
CeruleanSeedTalismanIsActive = false;
ManaReduce = 0f;
}

public override void OnRespawn()
{
Expand All @@ -39,5 +49,20 @@ public override void OnHitNPCWithItem(Item item, NPC target, NPC.HitInfo hit, in
if (WeaponImbueBlackFlame && item.DamageType.CountsAsClass<MeleeDamageClass>())
target.AddBuff(ModContent.BuffType<BlackFlameDebuff>(), 60 * 3); // 3 seconds
}

public override void GetHealLife(Item item, bool quickHeal, ref int healValue)
{
healValue = (int)(healValue * HealingPotionMultiplier);
}

public override void GetHealMana(Item item, bool quickHeal, ref int healValue)
{
healValue = (int)(healValue * ManaPotionMultiplier);
}

public override void ModifyManaCost(Item item, ref float reduce, ref float mult)
{
reduce -= ManaReduce;
}
}
}
146 changes: 146 additions & 0 deletions Content/Items/Accessories/AmberMedallion/CeruleanAmberMedallion.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.Localization;

using EldenRingItems.Content.Items.Materials.SomberSmithingStones;
using EldenRingItems.Common.Players;

namespace EldenRingItems.Content.Items.Accessories.AmberMedallion
{
public class CeruleanAmberMedallion : ModItem
{
public int ManaBonus { get; set; } = 20;
public float ManaReduce { get; set; } = 0.02f;

public override LocalizedText DisplayName => base.DisplayName.WithFormatArgs("");
public override LocalizedText Tooltip => base.Tooltip.WithFormatArgs(ManaBonus, (int)(ManaReduce * 100));

public override void SetDefaults()
{
Item.width = 44;
Item.height = 46;
Item.value = Item.buyPrice(0, 3, 0, 0);
Item.rare = ItemRarityID.Blue;
Item.accessory = true;
}

public override void UpdateAccessory(Player player, bool hideVisual)
{
ERIPlayer eri_player = player.GetModPlayer<ERIPlayer>();
eri_player.ManaReduce = ManaReduce;
player.statManaMax2 += ManaBonus;

}

public override bool CanAccessoryBeEquippedWith(Item equippedItem, Item incomingItem, Player player)
{
if (equippedItem.ModItem is CeruleanAmberMedallion && incomingItem.ModItem is CeruleanAmberMedallion)
return false;
return true;
}

public override bool CanEquipAccessory(Player player, int slot, bool modded)
{
for (int i = 3; i < 9; i++)
if (player.armor[i].ModItem is CeruleanAmberMedallion)
return false;
return true;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ItemID.GoldBar, 8);
r.AddIngredient(ItemID.Chain);
r.AddIngredient(ItemID.Sapphire, 4);
r.AddIngredient(ItemID.ManaCrystal);
r.AddTile(TileID.Anvils);
r.Register();
}
}

#region Upgrade
public abstract class UpgradedCeruleanAmberMedallion : CeruleanAmberMedallion
{
public int UpgradeLevel { get; set; }
public override LocalizedText Tooltip => ModContent.GetModItem(ModContent.ItemType<CeruleanAmberMedallion>()).Tooltip.WithFormatArgs(ManaBonus, (int)(ManaReduce * 100));
public override LocalizedText DisplayName => ModContent.GetModItem(ModContent.ItemType<CeruleanAmberMedallion>()).DisplayName.WithFormatArgs($" +{UpgradeLevel}");

protected UpgradedCeruleanAmberMedallion(int upgradeLevel)
{
UpgradeLevel = upgradeLevel;
if (UpgradeLevel == 3)
{
ManaBonus = 100;
ManaReduce = 0.10f;
}
else
{
ManaBonus += UpgradeLevel * 20;
ManaReduce += UpgradeLevel * 0.02f;
}
}
}

public class CeruleanAmberMedallion1 : UpgradedCeruleanAmberMedallion
{
public CeruleanAmberMedallion1() : base(1) { }

public override void SetDefaults()
{
base.SetDefaults();
Item.rare = ItemRarityID.Orange;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ModContent.ItemType<CeruleanAmberMedallion>());
r.AddIngredient(SSSUtils.GetSSSByLevel(4));
r.AddTile(TileID.Anvils);
r.Register();
}
}

public class CeruleanAmberMedallion2 : UpgradedCeruleanAmberMedallion
{
public CeruleanAmberMedallion2() : base(2) { }

public override void SetDefaults()
{
base.SetDefaults();
Item.rare = ItemRarityID.LightRed;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ModContent.ItemType<CeruleanAmberMedallion1>());
r.AddIngredient(SSSUtils.GetSSSByLevel(6));
r.AddTile(SSSUtils.GetTileByLevel(6));
r.Register();
}
}

public class CeruleanAmberMedallion3 : UpgradedCeruleanAmberMedallion
{
public CeruleanAmberMedallion3() : base(3) { }

public override void SetDefaults()
{
base.SetDefaults();
Item.rare = ItemRarityID.Pink;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ModContent.ItemType<CeruleanAmberMedallion2>());
r.AddIngredient(SSSUtils.GetSSSByLevel(8));
r.AddTile(SSSUtils.GetTileByLevel(8));
r.Register();
}
}
#endregion
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
132 changes: 132 additions & 0 deletions Content/Items/Accessories/AmberMedallion/CrimsonAmberMedallion.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.Localization;

using EldenRingItems.Content.Items.Materials.SomberSmithingStones;

namespace EldenRingItems.Content.Items.Accessories.AmberMedallion
{
public class CrimsonAmberMedallion : ModItem
{
public float LifeBonusMultiplier { get; set; } = 0.05f;

public override LocalizedText DisplayName => base.DisplayName.WithFormatArgs("");
public override LocalizedText Tooltip => base.Tooltip.WithFormatArgs((int)(LifeBonusMultiplier * 100));

public override void SetDefaults()
{
Item.width = 44;
Item.height = 46;
Item.value = Item.buyPrice(0, 3, 0, 0);
Item.rare = ItemRarityID.Blue;
Item.accessory = true;
}

public override void UpdateAccessory(Player player, bool hideVisual)
{
player.statLifeMax2 += (int)(player.statLifeMax * LifeBonusMultiplier);
}

public override bool CanAccessoryBeEquippedWith(Item equippedItem, Item incomingItem, Player player)
{
if (equippedItem.ModItem is CrimsonAmberMedallion && incomingItem.ModItem is CrimsonAmberMedallion)
return false;
return true;
}

public override bool CanEquipAccessory(Player player, int slot, bool modded)
{
for (int i = 3; i < 9; i++)
if (player.armor[i].ModItem is CrimsonAmberMedallion)
return false;
return true;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ItemID.GoldBar, 8);
r.AddIngredient(ItemID.Chain);
r.AddIngredient(ItemID.Ruby, 4);
r.AddIngredient(ItemID.LifeCrystal);
r.AddTile(TileID.Anvils);
r.Register();
}
}

#region Upgrade
public abstract class UpgradedCrimsonAmberMedallion : CrimsonAmberMedallion
{
public int UpgradeLevel { get; set; }
public override LocalizedText Tooltip => ModContent.GetModItem(ModContent.ItemType<CrimsonAmberMedallion>()).Tooltip.WithFormatArgs((int)(LifeBonusMultiplier * 100));
public override LocalizedText DisplayName => ModContent.GetModItem(ModContent.ItemType<CrimsonAmberMedallion>()).DisplayName.WithFormatArgs($" +{UpgradeLevel}");

protected UpgradedCrimsonAmberMedallion(int upgradeLevel)
{
UpgradeLevel = upgradeLevel;
LifeBonusMultiplier += UpgradeLevel * 0.05f;
}
}

public class CrimsonAmberMedallion1 : UpgradedCrimsonAmberMedallion
{
public CrimsonAmberMedallion1() : base(1) { }

public override void SetDefaults()
{
base.SetDefaults();
Item.rare = ItemRarityID.Orange;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ModContent.ItemType<CrimsonAmberMedallion>());
r.AddIngredient(SSSUtils.GetSSSByLevel(4));
r.AddTile(TileID.Anvils);
r.Register();
}
}

public class CrimsonAmberMedallion2 : UpgradedCrimsonAmberMedallion
{
public CrimsonAmberMedallion2() : base(2) { }

public override void SetDefaults()
{
base.SetDefaults();
Item.rare = ItemRarityID.LightRed;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ModContent.ItemType<CrimsonAmberMedallion1>());
r.AddIngredient(SSSUtils.GetSSSByLevel(6));
r.AddTile(SSSUtils.GetTileByLevel(6));
r.Register();
}
}

public class CrimsonAmberMedallion3 : UpgradedCrimsonAmberMedallion
{
public CrimsonAmberMedallion3() : base(3) { }

public override void SetDefaults()
{
base.SetDefaults();
Item.rare = ItemRarityID.Pink;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ModContent.ItemType<CrimsonAmberMedallion2>());
r.AddIngredient(SSSUtils.GetSSSByLevel(8));
r.AddTile(SSSUtils.GetTileByLevel(8));
r.Register();
}
}
#endregion
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.Localization;

using EldenRingItems.Common.Players;
using EldenRingItems.Content.Items.Materials.SomberSmithingStones;

namespace EldenRingItems.Content.Items.Accessories.AmberMedallion
{
public class CrimsonCeruleanAmberMedallion: ModItem
{
public float LifeBonusMultiplier { get; set; } = 0.20f;
public int ManaBonus { get; set; } = 100;
public float ManaReduce { get; set; } = 0.1f;

public override LocalizedText DisplayName => base.DisplayName.WithFormatArgs("");
public override LocalizedText Tooltip => base.Tooltip.WithFormatArgs((int)(LifeBonusMultiplier * 100), ManaBonus, (int)(ManaReduce * 100));

public override void SetDefaults()
{
Item.width = 58;
Item.height = 62;
Item.value = Item.buyPrice(0, 5, 0, 0);
Item.rare = ItemRarityID.Yellow;
Item.accessory = true;
}

public override void UpdateAccessory(Player player, bool hideVisual)
{
ERIPlayer eri_player = player.GetModPlayer<ERIPlayer>();
eri_player.ManaReduce = ManaReduce;
player.statManaMax2 += ManaBonus;
player.statLifeMax2 += (int)(player.statLifeMax * LifeBonusMultiplier);
}

public override bool CanAccessoryBeEquippedWith(Item equippedItem, Item incomingItem, Player player)
{
if (equippedItem.ModItem is CrimsonCeruleanAmberMedallion && incomingItem.ModItem is CrimsonCeruleanAmberMedallion)
return false;
else if (equippedItem.ModItem is CrimsonAmberMedallion && incomingItem.ModItem is CrimsonCeruleanAmberMedallion)
return false;
else if (equippedItem.ModItem is CeruleanAmberMedallion && incomingItem.ModItem is CrimsonCeruleanAmberMedallion)
return false;
return true;
}

public override bool CanEquipAccessory(Player player, int slot, bool modded)
{
for (int i=3; i < 9; i++)
if (player.armor[i].ModItem is CrimsonCeruleanAmberMedallion || player.armor[i].ModItem is CrimsonAmberMedallion || player.armor[i].ModItem is CeruleanAmberMedallion)
return false;
return true;
}

public override void AddRecipes()
{
Recipe r = CreateRecipe();
r.AddIngredient(ModContent.ItemType<CrimsonAmberMedallion3>());
r.AddIngredient(ModContent.ItemType<CeruleanAmberMedallion3>());
r.AddIngredient(SSSUtils.GetSSSByLevel(10));
r.AddTile(TileID.MythrilAnvil);
r.Register();
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit e3bd4b4

Please sign in to comment.