Ejemplo n.º 1
0
        public static void Postfix(Player __instance, Player aggressor, DamageInfo damageInfo)
        {
            if (__instance.Profile.Info.Side == EPlayerSide.Savage)
            {
                return;
            }

            var equipment  = getEquipmentProperty(__instance);
            var dogtagSlot = equipment.GetSlot(EFT.InventoryLogic.EquipmentSlot.Dogtag);

            var dogtagItem = dogtagSlot.ContainedItem as Item;

            if (dogtagItem == null)
            {
                Debug.LogError("DogtagPatch error > DogTag slot item is null somehow.");
                return;
            }

            DogtagComponent itemComponent = dogtagItem.GetItemComponent <DogtagComponent>();

            if (itemComponent == null)
            {
                Debug.LogError("DogtagPatch error > DogTagComponent on dog tag slot is null. Something went horrifically wrong!");
                return;
            }

            var victimProfileInfo = __instance.Profile.Info;

            itemComponent.Nickname   = victimProfileInfo.Nickname;
            itemComponent.Side       = victimProfileInfo.Side;
            itemComponent.KillerName = aggressor.Profile.Info.Nickname;
            itemComponent.Time       = DateTime.Now;
            itemComponent.Status     = "Killed by";
            itemComponent.WeaponName = damageInfo.Weapon.Name;

            if (__instance.Profile.Info.Experience > 0)
            {
                itemComponent.Level = victimProfileInfo.Level;
            }
        }
Ejemplo n.º 2
0
        public void OnHealthChangedEvent(EBodyPart bodyPart, float diff, StDamage effect)
        {
            CurrentHealth.Health[bodyPart].ChangeHealth(diff);

            _simpleTimer.isHealthSynchronized = false;
        }