public override void ModifyHitByProjectile(NPC npc, Projectile projectile, ref int damage, ref float knockback, ref bool crit, ref int hitDirection) { ColoredDamageTypes.recentcolor_out = DamageTypes.GetType(projectile); ColoredDamageTypes.recentdmg_out = damage; ColoredDamageTypes.recentkb_out = knockback; ColoredDamageTypes.recentcrit_out = (byte)(crit?1:0); }
public override void ModifyHitByItem(NPC npc, Player player, Item item, ref int damage, ref float knockback, ref bool crit) { ColoredDamageTypes.recentcolor_out = DamageTypes.GetType(item); ColoredDamageTypes.recentdmg_out = damage; ColoredDamageTypes.recentkb_out = knockback; ColoredDamageTypes.recentcrit_out = (byte)(crit?1:0); }
public override void OnHitByProjectile(NPC npc, Projectile projectile, int damage, float knockback, bool crit) { if (!Config.Instance.ChangeDamageColor) { return; } int recent = -1; for (int i = 99; i >= 0; i--) { CombatText ctToCheck = Main.combatText[i]; if (ctToCheck.lifeTime == 60 || ctToCheck.lifeTime == 120) { if (ctToCheck.alpha == 1f) { if ((ctToCheck.color == CombatText.DamagedHostile || ctToCheck.color == CombatText.DamagedHostileCrit)) { recent = i; break; } } } } if (recent == -1) { return; } else { Color newcolor; DamageTypes.Types dmgtype = DamageTypes.GetType(projectile); if (Config.Instance.DebugMode) { ColoredDamageTypes.Log("HitByProjectile: " + damage + " " + projectile.Name + "/" + projectile.type + ": " + dmgtype.ToString()); } newcolor = DamageTypes.CheckDamageColor(dmgtype, crit); //Main.combatText[recent].active = false; //Main.combatText[recent].lifeTime = 0; //CombatText.NewText(new Rectangle((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height), newcolor, damage, crit, false); //NetMessage.SendData //ColoredDamageTypes.instance.SendColorPacket(newcolor.R, newcolor.G, newcolor.B, newcolor.A, damage, crit); Main.combatText[recent].color = newcolor; } }
public override bool HijackGetData(ref byte messageType, ref BinaryReader reader, int playerNumber) { if (messageType == 28) { if (Main.netMode == NetmodeID.MultiplayerClient) { NPC npc = Main.npc[(int)reader.ReadInt16()]; //npc being hit int damage = ModNet.AllowVanillaClients ? reader.ReadInt16() : reader.ReadInt32(); //damage float knockback = reader.ReadSingle(); // knockback int hitdir = (reader.ReadByte() - 1); // hit direction byte critbyte = reader.ReadByte(); bool crit = critbyte == 1; //Main.NewText("Knockback: " + num86 + ", Direction: " + num87 + ", Crit: " + bb+" ?: "+crit); if (damage > 0 && damage == recentdmg_in && knockback == recentkb_in && critbyte == recentcrit_in) { npc.StrikeNPC(damage, knockback, hitdir, crit, false, true); int recent = -1; for (int i = 99; i >= 0; i--) { CombatText ctToCheck = Main.combatText[i]; if (ctToCheck.lifeTime == 60 || ctToCheck.lifeTime == 120) { if (ctToCheck.alpha == 1f) { if ((ctToCheck.color == CombatText.OthersDamagedHostile || ctToCheck.color == CombatText.OthersDamagedHostileCrit)) { recent = i; break; } } } } if (recent > -1) { Main.combatText[recent].color = DamageTypes.CheckDamageColor(recentcolor_in, crit) * 0.4f; } return(true); } } return(false); } return(false); }
//public override void UpdateLifeRegen(NPC npc, ref int damage) //{ //} public override void OnHitByItem(NPC npc, Player player, Item item, int damage, float knockback, bool crit) { if (!Config.Instance.ChangeDamageColor) { return; } int recent = -1; for (int i = 99; i >= 0; i--) { CombatText ctToCheck = Main.combatText[i]; if (ctToCheck.lifeTime == 60 || ctToCheck.lifeTime == 120 || (ctToCheck.dot && ctToCheck.lifeTime == 40)) { if (ctToCheck.alpha == 1f) { if ((ctToCheck.color == CombatText.DamagedHostile || ctToCheck.color == CombatText.DamagedHostileCrit)) { recent = i; break; } } } } if (recent == -1) { return; } else { Color newcolor; DamageTypes.Types dmgtype = DamageTypes.GetType(item); if (Config.Instance.DebugMode) { ColoredDamageTypes.Log("HitByItem: " + damage + item.Name + "/" + item.type + ": " + item.shoot + " " + dmgtype.ToString()); } newcolor = DamageTypes.CheckDamageColor(dmgtype, crit); Main.combatText[recent].color = newcolor; } }
public void UpdateToolTips(Item item, List <TooltipLine> tooltips) { if (Config.Instance.ChangeTooltipColor) { foreach (TooltipLine tooltip in tooltips) { //Main.NewText(tooltip.Name+": "+tooltip.text); //ColoredDamageTypes.Log(tooltip.Name + ": " + tooltip.mod+": "+": "+tooltip.text); Color newcolor = Color.White; switch (tooltip.Name) { case "Defense": newcolor = TooltipsConfig.Instance.BaseTT.TooltipDefense; break; case "Damage": DamageTypes.Types dmgtype = DamageTypes.GetType(item); //Main.NewText("its damage"); switch (dmgtype) { case DamageTypes.Types.Melee: newcolor = TooltipsConfig.Instance.BaseTT.TooltipMelee; break; case DamageTypes.Types.Ranged: newcolor = TooltipsConfig.Instance.BaseTT.TooltipRanged; break; case DamageTypes.Types.Magic: newcolor = TooltipsConfig.Instance.BaseTT.TooltipMagic; break; case DamageTypes.Types.Thrown: newcolor = TooltipsConfig.Instance.BaseTT.TooltipThrowing; break; case DamageTypes.Types.Summon: newcolor = TooltipsConfig.Instance.BaseTT.TooltipSummon; break; case DamageTypes.Types.Sentry: newcolor = TooltipsConfig.Instance.BaseTT.TooltipSentry; break; case DamageTypes.Types.Radiant: newcolor = TooltipsConfig.Instance.ThoriumTT.TooltipRadiant; break; case DamageTypes.Types.Symphonic: newcolor = TooltipsConfig.Instance.ThoriumTT.TooltipSymphonic; break; case DamageTypes.Types.True: newcolor = TooltipsConfig.Instance.ThoriumTT.TooltipTrue; break; /* * case DamageTypes.Types.Alchemic: * newcolor = TooltipsConfig.Instance.TremorTT.TooltipAlchemic; * break; */ default: break; } break; } if (newcolor != Color.White) { tooltip.overrideColor = newcolor; } } } }