public override void OnEvent(PlayerHitEnemy ev) { if (!this.ValidateSender(ev, global::SenderTypes.Any)) { return; } if (!ev.Target) { return; } if (ev.Hit == 0) { return; } try { if (global::EnemyHealth.CurrentAttacker == null) { global::EnemyHealth.CurrentAttacker = ev.Target; } global::lb_Bird component = ev.Target.GetComponent <global::lb_Bird>(); global::Fish componentInChildren = ev.Target.GetComponentInChildren <global::Fish>(); Transform transform; if (componentInChildren) { transform = componentInChildren.transform; } else if (ev.Target.GetComponent <global::animalHealth>()) { transform = ev.Target.transform; } else if (component) { transform = component.transform; } else { global::EnemyHealth componentInChildren2 = ev.Target.GetComponentInChildren <global::EnemyHealth>(); if (componentInChildren2) { transform = componentInChildren2.transform; } else { transform = ev.Target.transform.GetChild(0); } } if (ev.getAttacker == 10 && ev.Weapon) { global::ArrowDamage componentInChildren3 = ev.Weapon.GetComponentInChildren <global::ArrowDamage>(); if (componentInChildren3.Live) { global::arrowStickToTarget componentInChildren4 = transform.GetComponentInChildren <global::arrowStickToTarget>(); Transform target = transform; if (componentInChildren4) { target = componentInChildren4.transform; } componentInChildren3.CheckHit(Vector3.zero, target, false, transform.GetComponent <Collider>()); } } if (ev.explosion) { transform.SendMessage("Explosion", -1, SendMessageOptions.DontRequireReceiver); } if (ev.HitHead) { transform.SendMessage("HitHead", SendMessageOptions.DontRequireReceiver); } if (ev.getStealthAttack) { transform.SendMessage("getStealthAttack", SendMessageOptions.DontRequireReceiver); } if (ev.hitFallDown) { global::mutantHitReceiver componentInChildren5 = transform.GetComponentInChildren <global::mutantHitReceiver>(); if (componentInChildren5) { componentInChildren5.sendHitFallDown(ev.Hit); } } else { transform.SendMessage("getAttacker", (ev.RaisedBy.UserData as BoltEntity).gameObject, SendMessageOptions.DontRequireReceiver); transform.SendMessage("getAttackerType", ev.getAttackerType, SendMessageOptions.DontRequireReceiver); transform.SendMessage("getAttackDirection", ev.getAttackDirection, SendMessageOptions.DontRequireReceiver); transform.SendMessage("getCombo", ev.getCombo, SendMessageOptions.DontRequireReceiver); transform.SendMessage("takeDamage", ev.takeDamage, SendMessageOptions.DontRequireReceiver); transform.SendMessage("setSkinDamage", UnityEngine.Random.Range(0, 3), SendMessageOptions.DontRequireReceiver); transform.SendMessage("ApplyAnimalSkinDamage", ev.getAttackDirection, SendMessageOptions.DontRequireReceiver); transform.SendMessage("Hit", ev.Hit, SendMessageOptions.DontRequireReceiver); if (ev.HitAxe) { transform.SendMessage("HitAxe", SendMessageOptions.DontRequireReceiver); } if (ev.Burn) { transform.SendMessage("Burn", SendMessageOptions.DontRequireReceiver); } } } finally { global::EnemyHealth.CurrentAttacker = null; } }
public override void OnEvent(PlayerHitEnemy ev) { //this needed to be changed. //the command would send damage using hitReal - pure damage. //this made clinets attack ignore armor and deal too much dmg if (!this.ValidateSender(ev, global::SenderTypes.Any)) { return; } if (!ev.Target) { return; } if (ev.Hit == 0) { return; } try { if (global::EnemyHealth.CurrentAttacker == null) { global::EnemyHealth.CurrentAttacker = ev.Target; } var packed = ev.Target.networkId.PackedValue; if (EnemyManager.hostDictionary.ContainsKey(packed)) { var enemy = EnemyManager.hostDictionary[packed]; if (ev.explosion) { enemy.HealthScript.Explosion(-1); } if (ev.getAttackerType == 2000000) { //ghost hit float damage = BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0); enemy.HitPhysicalSilent(damage); } else { if (ev.Hit > 0) { float damage = ev.getAttackerType >= DamageMath.CONVERTEDFLOATattackerType ? BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0) : ev.Hit; if (ev.getAttackerType >= DamageMath.CONVERTEDFLOATattackerType) { ev.getAttackerType -= DamageMath.CONVERTEDFLOATattackerType; } //just in case i ever need this //this is how to get the player object which raised the event (ev.RaisedBy.UserData as BoltEntity) enemy.HealthScript.getAttackDirection(ev.getAttackerType); var attackerGO = (ev.RaisedBy.UserData as BoltEntity).gameObject; enemy.setup.search.switchToNewTarget(attackerGO); enemy.setup.hitReceiver.getAttackDirection(ev.getAttackDirection); enemy.setup.hitReceiver.getCombo(ev.getCombo); enemy.HealthScript.takeDamage(ev.takeDamage); enemy.HealthScript.setSkinDamage(1); enemy.HitPhysical(damage); if (ev.Burn) { enemy.HealthScript.Burn(); } } else { ModAPI.Console.Write("The good armor reduction"); enemy.ReduceArmor(-ev.Hit); } } return; } //F**k all of this spaghetti below global::lb_Bird component = ev.Target.GetComponent <global::lb_Bird>(); global::Fish componentInChildren = ev.Target.GetComponentInChildren <global::Fish>(); Transform transform; if (componentInChildren) { transform = componentInChildren.transform; } else if (ev.Target.GetComponent <global::animalHealth>()) { transform = ev.Target.transform; } else if (component) { transform = component.transform; } else { global::EnemyHealth componentInChildren2 = ev.Target.GetComponentInChildren <global::EnemyHealth>(); if (componentInChildren2) { transform = componentInChildren2.transform; } else { transform = ev.Target.transform.GetChild(0); } } if (ev.getAttacker == 10 && ev.Weapon) { global::ArrowDamage componentInChildren3 = ev.Weapon.GetComponentInChildren <global::ArrowDamage>(); if (componentInChildren3.Live) { global::arrowStickToTarget componentInChildren4 = transform.GetComponentInChildren <global::arrowStickToTarget>(); Transform target = transform; if (componentInChildren4) { target = componentInChildren4.transform; } componentInChildren3.CheckHit(Vector3.zero, target, false, transform.GetComponent <Collider>()); } } if (ev.explosion) { transform.SendMessage("Explosion", -1, SendMessageOptions.DontRequireReceiver); } if (ev.HitHead) { transform.SendMessage("HitHead", SendMessageOptions.DontRequireReceiver); } if (ev.getStealthAttack) { transform.SendMessage("getStealthAttack", SendMessageOptions.DontRequireReceiver); } float dmg = ev.getAttackerType >= DamageMath.CONVERTEDFLOATattackerType ? BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0) : ev.Hit; if (ev.hitFallDown) { global::mutantHitReceiver componentInChildren5 = transform.GetComponentInChildren <global::mutantHitReceiver>(); if (componentInChildren5) { componentInChildren5.sendHitFallDown(dmg); } } else { if (ev.Hit > 0) { transform.SendMessage("getAttacker", (ev.RaisedBy.UserData as BoltEntity).gameObject, SendMessageOptions.DontRequireReceiver); transform.SendMessage("getAttackerType", ev.getAttackerType, SendMessageOptions.DontRequireReceiver); transform.SendMessage("getAttackDirection", ev.getAttackDirection, SendMessageOptions.DontRequireReceiver); transform.SendMessage("getCombo", ev.getCombo, SendMessageOptions.DontRequireReceiver); transform.SendMessage("takeDamage", ev.takeDamage, SendMessageOptions.DontRequireReceiver); transform.SendMessage("setSkinDamage", UnityEngine.Random.Range(0, 3), SendMessageOptions.DontRequireReceiver); transform.SendMessage("ApplyAnimalSkinDamage", ev.getAttackDirection, SendMessageOptions.DontRequireReceiver); transform.SendMessage("Hit", dmg, SendMessageOptions.DontRequireReceiver); if (ev.HitAxe) { transform.SendMessage("HitAxe", SendMessageOptions.DontRequireReceiver); } if (ev.Burn) { transform.SendMessage("Burn", SendMessageOptions.DontRequireReceiver); } } else { ModAPI.Console.Write("The bad armor reduction"); transform.SendMessage("ReduceArmor", -dmg, SendMessageOptions.DontRequireReceiver); } } } finally { global::EnemyHealth.CurrentAttacker = null; } }