public void Shoot(Vector3 direc, Owner owner, bool left = false) { if (!IsBad) { anim.SetTrigger("Attack"); } _fireCounter = 0f; GameObject temp; if (sprite && sprite.flipX) { temp = Instantiate(WeaponObject, gameObject.transform.position + new Vector3(-startPosX, startPosY, 0), Quaternion.identity) as GameObject; } else { temp = Instantiate(WeaponObject, gameObject.transform.position + new Vector3(startPosX, startPosY, 0), Quaternion.identity) as GameObject; } RangedWeaponBehaviour weaponBehaviour = temp.GetComponent <RangedWeaponBehaviour>(); weaponBehaviour.GetComponent <OwnedByBehaviour>().Owner = owner; weaponBehaviour.ActiveInTimeLayer = ActiveInTimeLayer; weaponBehaviour.MovementDirection = direc; weaponBehaviour.MovementSpeed = WeaponSpeed; }
public override void SetCharacter(Character character) { base.SetCharacter(character); _behaviour = _typedInfo._weaponBehaviourInfo.GetBehaviour(); _behaviour.Initialize(Inventory, this); if (_typedInfo._abilityOnPickup != null) { var buffItem = _typedInfo._abilityOnPickup.GetItem(); buffItem.SetCharacter(character); buffItem.Apply(); } }
public void OnTriggerEnter2D(Collider2D coll) { RangedWeaponBehaviour weapon = coll.GetComponent <RangedWeaponBehaviour>(); OwnedByBehaviour owner = coll.gameObject.GetComponent <OwnedByBehaviour>(); if (owner != null && weapon != null && owner.Owner != Owner.Player) { TimeLayer collisionTimeLayer = coll.GetComponent <ActiveInTimeLayerBehaviour>().ActiveInTimeLayer; if (activeLayer.ActiveInTimeLayer == collisionTimeLayer || collisionTimeLayer == TimeLayer.All) { if (PlayerData.TakeHit(weapon.Data.Damage)) { Application.LoadLevel(Application.loadedLevel); } } } if (coll.tag == "KillCollider") { Application.LoadLevel(Application.loadedLevel); } }