Beispiel #1
0
 void DamageEnemy(DamageEnemyMsg msg)
 {
     if (!msg.External)
     {
         string DeconMsg =
             DamageEnemyID
             + "," + ((int)msg.EType)
             + "," + msg.EnemyID
             + "," + msg.TankID
             + "," + msg.Amount;
         WebsockAdaptorSend(DeconMsg);
     }
 }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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;
            }
        }
    }
Beispiel #4
0
    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;
        }
    }
Beispiel #5
0
 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;
     }
 }