示例#1
0
 private static void ForceStop(ThrowableItem throwable, Player player)
 {
     throwable.CancelStopwatch.Start();
     throwable.ThrowStopwatch.Reset();
     ReCreateItem(player, player.ItemInHand);
     new ThrowableNetworkHandler.ThrowableItemAudioMessage(throwable, ThrowableNetworkHandler.RequestType.CancelThrow).SendToAuthenticated();
 }
示例#2
0
    void HandleKeyboardInput()
    {
        var keyboard = Keyboard.current;

        if (keyboard.qKey.isPressed && ThrowableItem != null)
        {
            loadingItemAction += 1f * Time.deltaTime;
        }
        else if (keyboard.qKey.wasReleasedThisFrame && ThrowableItem != null)
        {
            ThrowableItem.Throw(loadingItemAction, GetCentralizedMousePos().normalized, throwableSpawn.position);
            ThrowableItem     = null;
            loadingItemAction = 0f;
        }

        if (keyboard.qKey.isPressed)
        {
            //var x = FindObjectOfType<BulletBoss>();
            //if (x != null) {
            //playerPosition.position = x.transform.position + (x.transform.right*2f);
            //}

            var masterSystem = FindObjectOfType <MasterSystem>(); // TODO: spawn player from master system
            if (masterSystem != null)
            {
                masterSystem.LoadNextLevel();
            }
        }
    }
示例#3
0
    public static void calculateDirectionForce(Entity target, ThrowableItem it)
    {
        target.receiveDamage(it.getDamage());
        Rigidbody2D trbd          = target.GetComponent <Rigidbody2D>();
        Rigidbody2D itrbd         = it.GetComponent <Rigidbody2D>();
        float       lostLife      = target.getMaxLife() - target.getLife();
        float       itemknockBack = calculateKnockBack(lostLife, it.getDamage(), itrbd.mass, it.getKnockBack());

        switch (it.getDirection())
        {
        case Utilities.direction.Up: trbd.AddForce(new Vector2(0f, itemknockBack * 1.5f), ForceMode2D.Impulse); break;

        case Utilities.direction.Down: trbd.AddForce(new Vector2(0f, -itemknockBack), ForceMode2D.Impulse); break;

        case Utilities.direction.Left: trbd.AddForce(new Vector2(-itemknockBack, itemknockBack), ForceMode2D.Impulse); break;

        case Utilities.direction.Right: trbd.AddForce(new Vector2(itemknockBack, itemknockBack), ForceMode2D.Impulse); break;

        case Utilities.direction.UpLeft: trbd.AddForce(new Vector2(-itemknockBack, itemknockBack * 1.5f), ForceMode2D.Impulse); break;

        case Utilities.direction.UpRight: trbd.AddForce(new Vector2(itemknockBack, itemknockBack * 1.5f), ForceMode2D.Impulse); break;

        case Utilities.direction.DownLeft: trbd.AddForce(new Vector2(-itemknockBack, -itemknockBack), ForceMode2D.Impulse); break;

        case Utilities.direction.DownRight: trbd.AddForce(new Vector2(itemknockBack, -itemknockBack), ForceMode2D.Impulse); break;
        }

        target.StartCoroutine(target.hitStun(itemknockBack));
    }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ThrowingItemEventArgs"/> class.
 /// </summary>
 /// <param name="player"><inheritdoc cref="Player"/></param>
 /// <param name="item"><inheritdoc cref="Item"/></param>
 /// <param name="request"><inheritdoc cref="RequestType"/></param>
 /// <param name="isAllowed"><inheritdoc cref="IsAllowed"/></param>
 public ThrowingItemEventArgs(Player player, ThrowableItem item, ThrowableNetworkHandler.RequestType request, bool isAllowed = true)
 {
     Player      = player;
     Item        = (Throwable)API.Features.Items.Item.Get(item);
     RequestType = (ThrowRequest)request;
     IsAllowed   = isAllowed;
 }
示例#5
0
 void Start()
 {
     ti         = prefab.GetComponent <ThrowableItem> ();
     lr         = this.GetComponent <LineRenderer> ();
     fuseLength = ti.fuseLength;
     sr         = this.gameObject.GetComponent <SpriteRenderer> ();
 }
示例#6
0
    void Start()
    {
        originalPosition = transform.position;
        defaultHeight    = transform.position.y;
        mat = GetComponent <MeshRenderer>().material;

        currentAnimation = standAnimation;

        throwFan = transform.FindChild("ThrowFan").gameObject;
        throwFan.SetActive(false);

        {
            currentItem = Instantiate(throwableItemPrefab).GetComponent <ThrowableItem>();
        }

        currentSpeed = 0;
        targetSpeed  = currentSpeed;

        pointer = transform.FindChild("Pointer");
        Transform spriteTransform = transform.FindChild("PlayerSprite");

        spriteRenderer = spriteTransform.GetComponentInChildren <SpriteRenderer>();
        hasThrown      = false;
        throwing       = false;
        dropAndGiveUp  = false;
        tripAndFall    = false;
        gameEnding     = false;
        gameOver       = false;
        ChangeAnimation("stand");
        selectedNumber = -1;

        restartText = GameObject.Find("RestartText");
        restartText.SetActive(false);
    }
示例#7
0
 void Start()
 {
     ti = prefab.GetComponent <ThrowableItem> ();
     lr = this.GetComponent <LineRenderer> ();
     //lr.useWorldSpace = false;
     fuseLength = ti.fuseLength;
     sr         = this.gameObject.GetComponent <SpriteRenderer> ();
     laserColor = new Color(laserColor.r, laserColor.g, laserColor.b, 0.5f);
 }
 private void Relate(ThrowableItem item, params ThrowableItem[] to)
 {
     for (int i = 0; i < to.Length; i++)
     {
         item["Relation" + i] = to[i];
         item.GetDetailCollection("Links", true).Add(to[i]);
     }
     persister.Save(item);
 }
示例#9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FlashGrenade"/> class.
        /// </summary>
        /// <param name="itemBase"><inheritdoc cref="Throwable.Base"/></param>
        public FlashGrenade(ThrowableItem itemBase)
            : base(itemBase)
        {
            FlashbangGrenade grenade = (FlashbangGrenade)Base.Projectile;

            BlindCurve = grenade._blindingOverDistance;
            SurfaceDistanceIntensifier = grenade._surfaceZoneDistanceIntensifier;
            DeafenCurve = grenade._deafenDurationOverDistance;
            FuseTime    = grenade._fuseTime;
        }
示例#10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ExplosiveGrenade"/> class.
        /// </summary>
        /// <param name="itemBase"><inheritdoc cref="Throwable.Base"/></param>
        public ExplosiveGrenade(ThrowableItem itemBase)
            : base(itemBase)
        {
            ExplosionGrenade grenade = (ExplosionGrenade)Base.Projectile;

            MaxRadius       = grenade._maxRadius;
            ScpMultiplier   = grenade._scpDamageMultiplier;
            BurnDuration    = grenade._burnedDuration;
            DeafenDuration  = grenade._deafenedDuration;
            ConcussDuration = grenade._concussedDuration;
            FuseTime        = grenade._fuseTime;
        }
    private IEnumerator WaitForPickAnim()
    {
        yield return(new WaitForSeconds(1.21f));

        pickedObjectScript = pickedObject.GetComponent <ThrowableItem>();
        pickedObjectScript.TurnRbOff();

        pickedObject.transform.parent        = handReference.transform;
        pickedObject.transform.localPosition = Vector3.zero;
        pickedObject.transform.rotation      = new Quaternion(90f, 0f, 0f, 0f);

        audioPlay.PlayObjeto();
    }
示例#12
0
    void HandleKeyboardInput()
    {
        var keyboard = Keyboard.current;

        if (keyboard.qKey.isPressed && ThrowableItem != null)
        {
            loadingItemAction += 1f * Time.deltaTime;
        }
        else if (keyboard.qKey.wasReleasedThisFrame && ThrowableItem != null)
        {
            ThrowableItem.Throw(loadingItemAction, GetCentralizedMousePos().normalized, throwableSpawn.position);
            ThrowableItem     = null;
            loadingItemAction = 0f;
        }
    }
示例#13
0
 // Use this for initialization
 void Start()
 {
     foreach (var p in itemPrefabs)
     {
         ClientScene.RegisterPrefab(p);
         ThrowableItem item = p.GetComponent <ThrowableItem>();
         if (item)
         {
             ClientScene.RegisterPrefab(item.throwingItemPrefab);
         }
     }
     foreach (var p in rareItemPrefabs)
     {
         ClientScene.RegisterPrefab(p);
     }
 }
        public override void SetUp()
        {
            base.SetUp();

            persister = engine.Persister;
            versions  = engine.Resolve <IVersionManager>();

            persister.Dispose();

            CreateDatabaseSchema();

            root  = CreateOneItem <ThrowableItem>(0, "root", null);
            item  = CreateOneItem <ThrowableItem>(0, "item", root);
            item2 = CreateOneItem <ThrowableItem>(0, "item2", root);

            trash = engine.Resolve <ITrashHandler>();

            System.Threading.Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity("admin", "test"), new string[] { "Administrators" });
        }
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject == tilemap)
     {
         if (GetComponent <CircleCollider2D>().isTrigger == false)
         {
             GetComponent <Rigidbody2D>().velocity       = Vector2.zero;
             GetComponent <CircleCollider2D>().isTrigger = true;
             MakeSound();
         }
     }
     if (collision.gameObject.GetComponent <EnemyAI>())
     {
         if (item.GetType() == typeof(ThrowableItem))
         {
             ThrowableItem tItem = (ThrowableItem)item;
             Hurt(collision.gameObject.GetComponent <EnemyAI>(), (int)tItem.damage);
             print(collision.gameObject + " is hurt by " + tItem.name + ", the dmg is " + tItem.damage);
         }
     }
 }
示例#16
0
        private static bool ServerThrow(ThrowableItem __instance, float forceAmount, float upwardFactor, Vector3 torque, Vector3 startVel)
        {
            try
            {
                __instance._destroyTime  = Time.timeSinceLevelLoad + __instance._postThrownAnimationTime;
                __instance._alreadyFired = true;
                var newpickup = UnityEngine.Object.Instantiate(__instance.Projectile,
                                                               __instance.Owner.PlayerCameraReference.position, __instance.Owner.PlayerCameraReference.rotation);

                var info = new PickupSyncInfo
                {
                    ItemId   = __instance.ItemTypeId,
                    Locked   = !__instance._repickupable,
                    Serial   = __instance.ItemSerial,
                    Weight   = __instance.Weight,
                    Position = newpickup.transform.position,
                    Rotation = new LowPrecisionQuaternion(newpickup.transform.rotation),
                };

                newpickup.NetworkInfo   = info;
                newpickup.PreviousOwner = new Footprinting.Footprint(__instance.Owner);
                NetworkServer.Spawn(newpickup.gameObject);
                newpickup.InfoReceived(default, info);
示例#17
0
    void Start()
    {
        originalPosition = transform.position;
        defaultHeight = transform.position.y;
        mat = GetComponent<MeshRenderer>().material;

        currentAnimation = standAnimation;

        throwFan = transform.FindChild("ThrowFan").gameObject;
        throwFan.SetActive(false);

        {
            currentItem = Instantiate(throwableItemPrefab).GetComponent<ThrowableItem>();
        }

        currentSpeed = 0;
        targetSpeed = currentSpeed;

        pointer = transform.FindChild("Pointer");
        Transform spriteTransform = transform.FindChild("PlayerSprite");
        spriteRenderer = spriteTransform.GetComponentInChildren<SpriteRenderer>();
        hasThrown = false;
        throwing = false;
        dropAndGiveUp = false;
        tripAndFall = false;
        gameEnding = false;
        gameOver = false;
        ChangeAnimation("stand");
        selectedNumber = -1;

        restartText = GameObject.Find("RestartText");
        restartText.SetActive(false);
    }
示例#18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Throwable"/> class.
 /// </summary>
 /// <param name="itemBase">The base <see cref="ThrowableItem"/> class.</param>
 public Throwable(ThrowableItem itemBase)
     : base(itemBase)
 {
     Base = itemBase;
 }
示例#19
0
 void Start()
 {
     origRot = transform.rotation;
     parent  = transform.parent.GetComponent <ThrowableItem>();
 }
示例#20
0
 void Start()
 {
     origRot = transform.rotation;
     parent = transform.parent.GetComponent<ThrowableItem>();
 }
示例#21
0
文件: Item.cs 项目: KuromeSan/HISP
 public static void AddThrowableItem(ThrowableItem throwableItem)
 {
     throwableItems.Add(throwableItem);
 }
示例#22
0
 public void ThrowItem(ThrowableItem item, (float, float) targetPos)