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();
     }
 }
Ejemplo n.º 4
0
        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;
                    }
                }
            }
        }