//----------------------------------------------------------------------------
        //                    Damage
        //----------------------------------------------------------------------------

        #region Damage

        public IEnumerator Damage()
        {
            WeaponObject   weapon         = MyAttackData.MyHasAttack.MyWeapon;
            SingleDamageID weaponDamageID = new SingleDamageID(weapon.MyDamageType, DamageSource.Roll);
            SingleDamageID modDamageID    = new SingleDamageID(weapon.MyDamageType, DamageSource.Mod);

            int weaponDamage = (int)MyAttackRoll.MyDamageData.MyDamageDict[weaponDamageID];
            int modDamage    = (int)MyAttackRoll.MyDamageData.MyDamageDict[modDamageID];


            MyTextMesh.text = "The attack deals " + weaponDamage + " + "
                              + modDamage + " = " +
                              MyAttackRoll.MyDamageData.GetDamage() + " damage. " +
                              MyAttackData.MyIsVictim.Name + " flinches from the pain."
                              + "Their health is now " + MyAttackData.MyIsVictim.MyHasHealth.GetHealth() + "/"
                              + MyAttackData.MyIsVictim.MyHasHealth.GetMaxHealth();

            while (!Input.GetMouseButton(0))
            {
                yield return(null);
            }

            yield return(StartCoroutine(HideCanvas()));

            yield return(new WaitForSeconds(0.2f));
        }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        time  += Time.deltaTime;
        timeB -= Time.deltaTime;
        if (ga != null)
        {
            if (time > 5f)
            {
                time = 0f;
                GameObject gb = GameObject.Instantiate(objs.Find(n => n.name == "weapon").objectItem);
                gb.transform.position = objectTransform.position;
                WeaponObject wp = gb.GetComponent <WeaponObject>();
                NEAT.Person  p  = ga.results[random.Next(ga.results.Count - 1)];
                wp.contained = p;
            }
        }

        if (timeB < 0f)
        {
            timeB = 10f;
            if (player.usedWepons.Count > 1)
            {
                breed();
            }
        }
    }
示例#3
0
    //WEAPON PICKUP

    void PickupWeapon()
    {
        //Checks if there is any weapon around
        if (weaponsInRange.Count > 0)
        {
            //Gets the closest weapon
            WeaponObject closestWeaponObject = GetClosestWeaponObject();
            //Clones the weapon he has found
            tempWeaponID = closestWeaponObject.weaponReference.weaponID;

            //If we dont have a weapon
            if (currentWeapon == null)
            {
                //Update it to null
                CmdUpdateWeapon(closestWeaponObject.weaponReference.indexPosition, 0, false);
            }
            else
            {
                //Update it to our current weapon
                CmdUpdateWeapon(closestWeaponObject.weaponReference.indexPosition, currentWeapon.weaponID, true);
            }

            //Equips the cloned weapon
            CmdEquipWeapon(tempWeaponID);
        }
    }
    public void Generate(Color lightColor)
    {
        WeaponObject chosenWeapon = GameGenerator.instance.weaponData.GetRandomWeapon();

        generator.AddToAlumno(chosenWeapon.alumno);
        BulletObject chosenBullet = GameGenerator.instance.weaponData.GetRandomBullet();

        generator.AddToAlumno(chosenBullet.alumno);

        weapon.Assign(chosenWeapon, chosenBullet);
        light2D.color = lightColor;

        // Hats
        HatObject hat = GameGenerator.instance.characterData.hats[UnityEngine.Random.Range(0, GameGenerator.instance.characterData.hats.Length)];

        GameGenerator.instance.AddToAlumno(hat.alumno);
        hatRenderer.sprite = hat.sprite;

        // Name
        Array  values       = Enum.GetValues(typeof(Alumno));
        Alumno randomAlumno = (Alumno)values.GetValue(UnityEngine.Random.Range(0, values.Length));

        playerName = randomAlumno.ToString();

        AddScore(0);
    }
示例#5
0
        public void Load()
        {
            Start();
            log.InfoFormat("ShipWeapon Load() [dy]");

            var character   = GetComponent <CharacterObject>();
            var dropManager = DropManager.Get(nebulaObject.world.Resource());
            var player      = GetComponent <MmoActor>();

            var  app      = nebulaObject.mmoWorld().application;
            bool isNew    = false;
            var  dbWeapon = WeaponDatabase.instance(app).LoadWeapon(player.GetComponent <PlayerCharacterObject>().characterId, resource as Res, out isNew);


            if (isNew)
            {
                GenerateNewWeapon(dropManager);
                string characterID = GetComponent <PlayerCharacterObject>().characterId;
                WeaponDatabase.instance(app).SaveWeapon(characterID, new ShipWeaponSave {
                    characterID = characterID, weaponObject = weaponObject.GetInfo()
                });
            }
            else
            {
                weaponObject = new WeaponObject(dbWeapon.weaponObject);
            }
        }
示例#6
0
    void Start()
    {
        Vector3 ownerPos    = GetOwnerObject().transform.position;
        float   reachLength = 1000.0f;

        if (WeaponObject.GetComponent <SwordObject>() != null)
        {
            reachLength = WeaponObject.GetComponent <SwordObject> ().ReachLength;
        }
        Vector3 moveDestPos = ownerPos;

        moveDestPos.x += reachLength;


        iTween.ValueTo(gameObject,
                       iTween.Hash(
                           "from", 1f,
                           "to", 0f,
                           "time", 0.15f,
                           "onupdate", "SetValue",
                           "oncomplete", "EffectCompleted"
                           ));

//		Vector3 moveDestPos = GameManager.Instance.swordReachMarker.transform.position;
        moveDestPos.x -= transform.localScale.x / 2.0f;
//		Debug.LogError ("@@@@@@@markerPos: " + GameManager.Instance.swordReachMarker.transform.position + ", scale: " + transform.localScale.x + ", distPos: " + moveDestPos);
        iTween.MoveTo(gameObject,
                      iTween.Hash(
                          "position", moveDestPos,
                          "islocal", false,
                          "time", 0.15f
                          ));
    }
示例#7
0
 public Weapon(byte spriteNum, string targetName, Vector3 indexPos = new Vector3(), WeaponObject weaponNetGameObject = null)
 {
     spriteType       = spriteNum;
     associatedWeapon = weaponNetGameObject;
     indexPosition    = indexPos;
     weaponName       = targetName;
 }
        public void RpcEquipWeapon(int weaponIndex)
        {
            // Make sure we don't lose any ammo between weapon switches
            if (currentAmmo > 0)
            {
                if (stored_currentAmmo.ContainsKey(weapon.ammoType.name) == false)
                {
                    stored_currentAmmo.Add(weapon.ammoType.name, currentAmmo);
                }
                else
                {
                    stored_currentAmmo[weapon.ammoType.name] = currentAmmo;
                }
                currentAmmo = 0;
            }

            weapon             = weapons[weaponIndex];
            currentWeaponIndex = weaponIndex;

            if (ammoPouch.ContainsKey(weapon.ammoType.name) == false)
            {
                ammoPouch.Add(weapon.ammoType.name, weapon.ammoType.magSize * weapon.startMagCount);
            }

            if (stored_currentAmmo.ContainsKey(weapon.ammoType.name) == false)
            {
                CmdReload();
            }
            else
            {
                currentAmmo = stored_currentAmmo[weapon.ammoType.name];
            }
        }
示例#9
0
    public void Assign(WeaponObject weapon, BulletObject bullet)
    {
        weaponObject   = Instantiate(weapon.prefab, offsetPoint.transform);
        shootingPoints = weaponObject.GetComponentsInChildren <Shooting>();

        this.bullet = bullet;
    }
示例#10
0
    public Weapon dropWeapon()
    {
        // if ostatnia bron
        int weaponsCount = 0;

        for (int i = 0; i < isWeapon.Length; i++)
        {
            if (isWeapon[i])
            {
                weaponsCount++;
            }
        }
        if (weaponsCount < 2)
        {
            return(weapons[weaponIndex]);
        }

        // else
        Vector2      weaponPos = new Vector2(GameObject.FindGameObjectWithTag("Player").transform.position.x - 2, GameObject.FindGameObjectWithTag("Player").transform.position.y);
        WeaponObject io        = Instantiate(weaponPrefab, weaponPos, Quaternion.identity);

        io.weapon = weapons[weaponIndex];

        isWeapon[weaponIndex] = false;
        weapons[weaponIndex]  = null;
        weaponSlot[weaponIndex].SetActive(false);

        return(changeWeapon());
    }
示例#11
0
    private void GetEquipment()
    {
        foreach (WeaponObject weapon in Assets.assets.weaponTemp)
        {
            if (weapon.wpLevel == 0)
            {
                startWeaponList.Add(weapon);
            }
        }

        startWeapon = startWeaponList[Random.Range(0, startWeaponList.Count)];

        foreach (ClothItemObject cloth in Assets.assets.clothTemp)
        {
            if (cloth.clothCategory == ClothScript.ClothCategory.StartGear)
            {
                switch (cloth.clothType)
                {
                case ClothScript.ClothType.Cloth:
                    startCloth.Add(cloth);
                    break;

                case ClothScript.ClothType.HeadGear:
                    startHeadGear.Add(cloth);
                    break;
                }
            }
        }
        cloth    = startCloth[Random.Range(0, startCloth.Count)];
        headGear = startHeadGear[Random.Range(0, startHeadGear.Count)];
    }
示例#12
0
 public void GetData(WeaponObject wo)
 {
     this.wo = wo;
     GetComponent <SpriteRenderer>().sprite = wo.sprite;
     gameObject.name = wo.weaponName;
     //transform.position = Vector2.zero;
 }
示例#13
0
    public void UpdateWeapon(WeaponObject _weaponObject)
    {
        weaponObject = _weaponObject;

        spriteRenderer.sprite = weaponObject.Sprite;
        animator.SetFloat("Speed", weaponObject.Speed);
    }
示例#14
0
    public void Restart(Scene _sceneToUnload)
    {
        CarNumber = 0;
        Weapon    = DefaultWeapon;

        LoadingManager.Instance.LoadScene("Main", _sceneToUnload);
    }
示例#15
0
 private void HitByWeapon(WeaponObject weaponObject)
 {
     Health -= 1;
     if (Health == 0)
     {
         gameManager.DestroyObstacle(this);
     }
 }
示例#16
0
    //[ClientRpc]
    //public void RpcChangeWeapon(int weaponIndex)
    //{
    //    equippedWeapon = weapons[weaponIndex];
    //    weaponSprite.sprite = equippedWeapon.inGameSprite;
    //    if (isLocalPlayer)
    //    {
    //        WeaponChanged?.Invoke(equippedWeapon);
    //    }
    //   // weaponSprite.sprite = newEquipped.inGameSprite;
    //}

    public void OnChangeWeapon(string oldWeapon, string newWeapon)
    {
        equippedWeapon = newWeapon;
        WeaponObject weaponObj = Constants.WeaponObjects.uiWeaponsDict[newWeapon];

        WeaponChanged?.Invoke(weaponObj);
        //weaponSprite.sprite = weaponObj.inGameSprite;
    }
示例#17
0
    public static void Create()
    {
        WeaponObject asset = ScriptableObject.CreateInstance <WeaponObject> ();

        AssetDatabase.CreateAsset(asset, "Assets/NewWeaponObject.asset");
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = asset;
    }
示例#18
0
    public void Setup(WeaponObject _weaponObject, Vector3 _velocity)
    {
        weaponObject = _weaponObject;

        transform.localScale = weaponObject.SlashSize;

        rb.AddForce(transform.forward * weaponObject.SlashSpeed + _velocity, ForceMode.Impulse);
    }
示例#19
0
 public void CreateProjectile(WeaponObject wo, GameObject target)
 {
     this.wo     = wo;
     range       = wo.range /*+ Random.Range(-wo.spread, wo.spread)*/;
     targetPos.x = target.transform.position.x;
     targetPos.y = target.transform.position.y;
     targetPos.z = 0;
 }
示例#20
0
    public Local(GameObject character) : base(character)
    {
        player = character.GetComponent <Player>();

        maxMoveSpeed = player.PlayerStats.MovementSpeed;
        maxTurnSpeed = 5;
        cannon       = character.transform.GetChild(1);
        weapon       = Object.Instantiate(GameObject.Find("Armory"), cannon).GetComponent <WeaponObject>();
    }
示例#21
0
    public static void CreateWeaponObject()
    {
        WeaponObject asset = ScriptableObject.CreateInstance <WeaponObject>();

        AssetDatabase.CreateAsset(asset, "Assets/Resources/WeaponsObjects/WeaponObjectAssets/You Just Created this weapon object. Give it a name!.asset");
        AssetDatabase.SaveAssets();
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = asset;
    }
示例#22
0
        public void loseWeapon()
        {
            primaryWeapon = null;
            var weaponVisual = FindWeaponVisual();

            if (weaponVisual)
            {
                RemoveWeaponDisplay(weaponVisual);
            }
        }
示例#23
0
 // The function for picking up weapons- if there is not two equiped weapons, the picked up weapon
 // will be equiped by default
 public void PickUpWeapon(WeaponObject weapon)
 {
     weaponInventory.Add(weapon);
     Debug.Log(weaponInventory.Count);
     if (weaponEquipInventory.Count < 2)
     {
         weaponEquipInventory.Add(weapon);
         Debug.Log(weaponEquipInventory.Count);
     }
 }
 public void AddWeapon(WeaponObject weapon)
 {
     if (weapons.Contains(weapon) == false)
     {
         weapons.Add(weapon);
     }
     else
     {
         CmdPickupAmmo(weapon.ammoType.name, weapon.startMagCount * weapon.ammoType.magSize);
     }
 }
示例#25
0
 private void Equip(WeaponObject weapon, int i)
 {
     if (weaponTransform == null)
     {
         return;
     }
     index = i;
     weaponTransform.localPosition = weapon.position;
     weaponTransform.GetComponent <SpriteRenderer> ().sprite = weapon.sprite;
     weaponHolder.GetComponent <WeaponRotation>().UpdateWeaponPosition(weaponInventory.weapons[index].barrelPosition);
 }
示例#26
0
 public void GetData(WeaponObject wpo)
 {
     weaponName  = wpo.weaponName;
     description = wpo.description;
     range       = wpo.range;
     fireRate    = wpo.fireRate;
     damage      = wpo.damage;
     cost        = wpo.cost;
     sprite      = wpo.sprite;
     gameObject.GetComponent <Image>().sprite = sprite;
 }
示例#27
0
        //----------------------------------------------------------------------------
        //                    GetAttackMod
        //----------------------------------------------------------------------------

        #region GetAttackMod

        public int GetAttackMod(WeaponObject weapon)
        {
            int strMod = GetStatMod(StatsType.Strength);
            int dexMod = GetStatMod(StatsType.Dexterity);

            if (weapon.Finesse && (dexMod > strMod))
            {
                return(dexMod);
            }
            return(strMod);
        }
    public override void OnInspectorGUI()
    {
        WeaponObject myTarget = (WeaponObject)target;

        base.OnInspectorGUI();

        if (myTarget.hasProjectile)
        {
            myTarget.projectile     = (GameObject)EditorGUILayout.ObjectField(myTarget.projectile, typeof(GameObject), false);
            myTarget.projectileType = (EffectRecycler.EffectType)EditorGUILayout.EnumPopup(myTarget.projectileType);
        }
    }
示例#29
0
 public bool PickUpWeapon(WeaponObject weapon)
 {
     if (this.weapons[0] == null)
     {
         this.weapons[0] = weapon;
         return(true);
     }
     else
     {
         return(false);
     }
 }
示例#30
0
 public void GetWeapon(string name)
 {
     foreach (WeaponObject wea in allWeapons)
     {
         wea.GetComponent <WeaponObject>().SelectThisWeapon(false);
     }
     try {
         WeaponObject temp = transform.Find(name).GetComponent <WeaponObject>();
         weapons.Add(temp);
         SelectWeapon();
     } catch {
     }
 }