void DamageEnemy(DamageEnemyMsg msg) { if (!msg.External) { string DeconMsg = DamageEnemyID + "," + ((int)msg.EType) + "," + msg.EnemyID + "," + msg.TankID + "," + msg.Amount; WebsockAdaptorSend(DeconMsg); } }
static DamageEnemyMsg ReconstructDamageEnemyMsg(string message) { string[] parts = message.Split(new char[] { ',' }); DamageEnemyMsg msg = new DamageEnemyMsg(); msg.External = true; int ET = int.Parse(parts[0]); msg.EType = (EnemyType)ET; msg.EnemyID = byte.Parse(parts[1]); msg.TankID = byte.Parse(parts [2]); msg.Amount = float.Parse(parts [3]); return(msg); }
void DamageEnemy(DamageEnemyMsg msg) { if (msg.EType == EType && msg.EnemyID == EnemyID) { Health -= msg.Amount; float Aggro = 0; bool FoundPlayerAggro = TankAggro.TryGetValue(msg.TankID, out Aggro); if (FoundPlayerAggro) { // print("Found player " + msg.TankID.ToString() + " adding aggro"); Aggro += msg.Amount * DamageToAggroCoefficient; TankAggro[msg.TankID] = Aggro; } } }
void OnCollisionEnter(Collision collision) { if ((NoCollisions > MaxNoCollisions && !PlayerFriendly) || ((NoCollisions > MaxNoCollisions - PlayerCollisionPenalty) && PlayerFriendly)) { Destroy(gameObject); } NoCollisions++; if (collision.transform.CompareTag("Player")) { print("Player Hit"); if (!PlayerFriendly) { DamageTankMsg msg = new DamageTankMsg(); msg.Amount = Damage; msg.FrameNo = Time.frameCount; msg.TankID = collision.transform.gameObject.GetComponent <TankBody>().GetTankID(); OwningGame.BroadcastMessage("DamageTank", msg, GameUtilities.DONT_CARE_RECIEVER); Destroy(gameObject); } } else if (collision.transform.CompareTag("Enemies")) { print("Enemy Hit"); if (PlayerFriendly) { DamageEnemyMsg msg = new DamageEnemyMsg(); msg.Amount = Damage; msg.TankID = CreatingPLayer; msg.EType = collision.transform.parent.gameObject.GetComponent <Guardian>().GetEnemyType(); msg.EnemyID = collision.transform.parent.gameObject.GetComponent <Guardian>().EnemyID; OwningGame.BroadcastMessage("DamageEnemy", msg, GameUtilities.DONT_CARE_RECIEVER); Destroy(gameObject); } } if (!PlayerFriendly) { Damage -= 2; //MAGIC NUMBER guardians are stupid so they have reduced penalty \ gameObject.GetComponent <MeshRenderer>().material.color /= 8; } else { Damage /= 2; //MAGIC NUMBER so players can exploit bouncing shots too badly gameObject.GetComponent <MeshRenderer>().material.color /= 8; } }
public void DamageTestEnemyGuardian() { if (TestEnemyGuardian != null && Input.GetKey(KeyCode.P) && CanFire()) { print("Attacken thha enermy!"); //public EnemyType EType; //public byte EnemyID; //public byte TankID;//the tank this damage is from //public float Amount; DamageEnemyMsg msg = new DamageEnemyMsg(); msg.EnemyID = TestEnemyGuardian.GetComponent <Guardian>().EnemyID; msg.TankID = OwningTank.GetComponent <TankBody>().TankID; msg.EType = EnemyType.Guardian; msg.Amount = 10f; OwningGame.BroadcastMessage("DamageEnemy", msg, GameUtilities.DONT_CARE_RECIEVER); FrameFired = Time.frameCount; } }