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 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 override void HandlePacket(BinaryReader reader, int whoAmI) { //Main.NewText("Got packet"); if (Main.netMode == NetmodeID.Server) { ModPacket packet = instance.GetPacket(); packet.Write(reader.ReadByte()); packet.Write(reader.ReadInt32()); packet.Write(reader.ReadSingle()); packet.Write(reader.ReadByte()); packet.Send(-1, whoAmI); packet.Close(); } if (Main.netMode == NetmodeID.MultiplayerClient) { recentcolor_in = (DamageTypes.Types)reader.ReadByte(); recentdmg_in = reader.ReadInt32(); recentkb_in = reader.ReadSingle(); recentcrit_in = reader.ReadByte(); } }
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; } } } }