Beispiel #1
0
 private void Start()
 {
     sMinioninfo = GetComponent <SiegeMinionInfo>();
     attackTrigger.CreateTrigger(sMinioninfo.AgroRange);
     attackTrigger.TriggerEnter += AttackTriggerEnter;
     attackTrigger.TriggerExit  += AttackTriggerExit;
     targets       = new List <Transform>();
     movement      = GetComponent <MinionMovement>();
     weaponDetails = weapon.GetComponentInChildren <BcWeapon>();
     if (EnemyAIManager.upgradeSiege)
     {
         weaponDetails.reloadTime            = sMinioninfo.reloadTime * 0.85f;
         weaponDetails.clipSize              = sMinioninfo.clipSize * 2;
         weaponDetails.rateOfFire            = sMinioninfo.AttackSpeed * 1.2f;
         weaponDetails.bulletsPerShot        = sMinioninfo.bulletsPerShot + 2;
         weaponDetails.SiegeProjectileDamage = sMinioninfo.Damage * 1.5f;
         GetComponent <UnityEngine.AI.NavMeshAgent>().speed = sMinioninfo.MovementSpeed * 1.8f;
     }
     else
     {
         weaponDetails.reloadTime            = sMinioninfo.reloadTime;
         weaponDetails.clipSize              = sMinioninfo.clipSize;
         weaponDetails.rateOfFire            = sMinioninfo.AttackSpeed;
         weaponDetails.bulletsPerShot        = sMinioninfo.bulletsPerShot;
         weaponDetails.SiegeProjectileDamage = sMinioninfo.Damage;
     }
     weaponDetails.currentAmmo = 0.0f;
 }
Beispiel #2
0
    private void OnSceneGUI()
    {
        Vector3  offset, vec;
        BcWeapon tW = (BcWeapon)target;

        if (tW.enabled)
        {
            test                     = this.serializedObject.FindProperty("test");
            bulletPrefab             = this.serializedObject.FindProperty("bulletPrefab");
            horizontalSpread         = this.serializedObject.FindProperty("horizontalSpread");
            verticalSpread           = this.serializedObject.FindProperty("verticalSpread");
            displayOffset            = this.serializedObject.FindProperty("displayOffset");
            bulletAcceleration       = this.serializedObject.FindProperty("bulletAcceleration");
            bulletSpeed              = this.serializedObject.FindProperty("bulletSpeed");
            bulletSpeedDelta         = this.serializedObject.FindProperty("bulletSpeedDelta");
            bulletLife               = this.serializedObject.FindProperty("bulletLife");
            rateOfFire               = this.serializedObject.FindProperty("rateOfFire");
            clipSize                 = this.serializedObject.FindProperty("clipSize");
            displayScale             = this.serializedObject.FindProperty("displayScale");
            bulletsPerShot           = this.serializedObject.FindProperty("bulletsPerShot");
            showDisplayHandles       = this.serializedObject.FindProperty("showDisplayHandles");
            bulletGlobalAcceleration = this.serializedObject.FindProperty(
                "bulletGlobalAcceleration");
            reloadTime      = this.serializedObject.FindProperty("reloadTime");
            gizmosFlag      = this.serializedObject.FindProperty("gizmosFlag");
            isSemiAutomatic = this.serializedObject.FindProperty("isSemiAutomatic");
            shootSound      = this.serializedObject.FindProperty("shootSound");
            reloadingSound  = this.serializedObject.FindProperty("reloadingSound");
            reloadedSound   = this.serializedObject.FindProperty("reloadedSound");
            emptyClickSound = this.serializedObject.FindProperty("emptyClickSound");
            if (showDisplayHandles.boolValue)
            {
                offset = tW.transform.position;
                vec    = -offset + Handles.PositionHandle(offset + tW.DisplayOffsetF, tW.transform.
                                                          rotation);
                displayOffset.vector3Value = tW.transform.worldToLocalMatrix.MultiplyVector(vec);
                displayScale.floatValue    = Mathf.Max(0.1f, Handles.ScaleSlider(displayScale.
                                                                                 floatValue, offset + tW.DisplayOffsetF, -tW.transform.up, tW.transform.rotation,
                                                                                 0.75f * HandleUtility.GetHandleSize(offset + tW.DisplayOffsetF), 0.0f));
            }
            Handles.color = Color.white;
            offset        = tW.DisplayPosition + tW.transform.up * (displayScale.floatValue * 0.5f) + tW.
                            transform.forward * (0.5f * displayScale.floatValue);
            vec = Handles.Slider(offset + tW.transform.forward * (tW.clipSize * displayScale.
                                                                  floatValue / rateOfFire.floatValue), tW.transform.forward, 0.75f * displayScale.
                                 floatValue, Handles.ConeHandleCap, 0.0f) - offset;
            rateOfFire.floatValue = tW.clipSize * (displayScale.floatValue / vec.magnitude);
            Handles.color         = Color.white;
            offset = tW.DisplayPosition - tW.transform.up * (displayScale.floatValue * 0.5f) + tW.
                     transform.forward * (0.75f * displayScale.floatValue);
            vec = Handles.Slider(offset + tW.transform.forward * (tW.clipSize * displayScale.
                                                                  floatValue / tW.rateOfFire), tW.transform.forward, 0.75f * displayScale.floatValue,
                                 Handles.SphereHandleCap, 0.0f) - offset;
            offset = tW.DisplayPosition - tW.transform.up * (displayScale.floatValue * 0.5f) + tW.
                     transform.forward * (0.5f * displayScale.floatValue);
            vec = Handles.Slider(offset + tW.transform.forward * (tW.clipSize * displayScale.
                                                                  floatValue / tW.rateOfFire), tW.transform.forward, 0.75f * displayScale.floatValue,
                                 Handles.CylinderHandleCap, 0.0f) - offset;
            clipSize.intValue = Mathf.RoundToInt(tW.rateOfFire * vec.magnitude / displayScale.
                                                 floatValue);
            Handles.color = Color.gray;
            offset        = tW.DisplayPosition + tW.transform.up * (displayScale.floatValue * 0.5f) - tW.
                            transform.forward * (0.5f * displayScale.floatValue);
            vec = Handles.Slider(offset - tW.transform.forward * (tW.reloadTime * displayScale.
                                                                  floatValue), -tW.transform.forward, 0.75f * displayScale.floatValue, Handles.
                                 ConeHandleCap, 0.0f) - offset;
            reloadTime.floatValue = vec.magnitude / displayScale.floatValue;
            this.serializedObject.ApplyModifiedProperties();
            Handles.color = Color.white;
            Vector3 position = tW.ShotEnd(tW.bulletSpeed * tW.transform.forward, tW.bulletLife,
                                          Color.white);
            Handles.Label(position, Mathf.Round(100.0f * tW.bulletLife) * 0.01f + " secs" + " | "
                          + Mathf.Round(100.0f * Vector3.Distance(tW.transform.position, position)) *
                          0.01f + " m");
        }
    }