Beispiel #1
0
        public override void Throw(Vector3 velocity)
        {
            base.Throw(velocity);
            if (this.spellCaster.ragdollHand.playerHand)
            {
                PlayerControl.GetHand(this.spellCaster.ragdollHand.side).HapticPlayClip(Catalog.gameData.haptics.telekinesisThrow, 1f);
            }
            Catalog.GetData <ItemData>("IceSpike", true).SpawnAsync(delegate(Item iceSpike) {
                //iceSpike.IgnoreObjectCollision(shooterItem);
                iceSpike.IgnoreRagdollCollision(spellCaster.mana.creature.ragdoll);


                if (!IceManager.IsAbilityUnlocked(IceManager.AbilitiesEnum.iceSpikeAim))
                {
                    iceSpike.rb.AddForce(velocity * IceManager.spikeSpeed, ForceMode.Impulse);
                    iceSpike.transform.rotation = Quaternion.LookRotation(velocity.normalized);
                }
                else
                {
                    Vector3 aimDir = AimAssist(iceSpike.transform.position, velocity.normalized, 0.7f, 0.01f);

                    iceSpike.rb.AddForce(aimDir * velocity.magnitude * IceManager.spikeSpeed, ForceMode.Impulse);
                    iceSpike.transform.rotation = Quaternion.LookRotation(aimDir);
                }

                iceSpike.Throw(1f, Item.FlyDetection.Forced);
            }, spellCaster.magic.position - (spellCaster.magic.forward * 0.5f), null, null, false, null);
        }
Beispiel #2
0
        public override void Init(MenuData menuData, Menu menu)
        {
            base.Init(menuData, menu);
            levelTxt  = menu.GetCustomReference("Level").GetComponent <Text>();
            xpTxt     = menu.GetCustomReference("XP").GetComponent <Text>();
            pointsTxt = menu.GetCustomReference("Points").GetComponent <Text>();

            unlockBTN = menu.GetCustomReference("AbilityUnlock").GetComponent <Button>();

            abilityTitle       = menu.GetCustomReference("AbilityTitle").GetComponent <Text>();
            abilityDescription = menu.GetCustomReference("AbilityDescription").GetComponent <Text>();
            cost = menu.GetCustomReference("Cost").GetComponent <Text>();

            this.menu = menu;

            SetUpSkillButton(IceManager.AbilitiesEnum.iceSpikeAim);
            SetUpSkillButton(IceManager.AbilitiesEnum.pickUpIceSpikes);
            SetUpSkillButton(IceManager.AbilitiesEnum.noGravity);
            SetUpSkillButton(IceManager.AbilitiesEnum.IceImbue);
            SetUpSkillButton(IceManager.AbilitiesEnum.IceMergeIce);
            SetUpSkillButton(IceManager.AbilitiesEnum.IceMergeFire);
            SetUpSkillButton(IceManager.AbilitiesEnum.IceMergeLightning);
            SetUpSkillButton(IceManager.AbilitiesEnum.IceMergeGrav);

            unlockBTN.onClick.AddListener(delegate
            {
                if (IceManager.UnlockAbility(selectedAbility))
                {
                    ReloadUnlocks();
                    this.unlockBTN.interactable = false;
                    this.unlockBTN.GetComponentInChildren <Text>().text = "Owned";
                }
            });
        }
Beispiel #3
0
        public void Initialize()
        {
            Debug.Log("Spike init");

            foreach (CollisionHandler collisionHandler in item.collisionHandlers)
            {
                if (IceManager.IsAbilityUnlocked(IceManager.AbilitiesEnum.noGravity))
                {
                    collisionHandler.SetPhysicModifier(this, 0, 0f, 1f, -1f, -1f, null);
                }
                //collisionHandler.OnCollisionStartEvent += CollisionHandler_OnCollisionStartEvent;
            }


            if (!IceManager.IsAbilityUnlocked(IceManager.AbilitiesEnum.pickUpIceSpikes))
            {
                Handle h = item.handles[0];
                h.enabled = false;
                h.gameObject.SetActive(false);

                item.handles.Clear();
            }

            spawnTime = Time.time;

            item.OnUngrabEvent          += Item_OnUngrabEvent1;
            item.OnTelekinesisGrabEvent += Item_OnTelekinesisGrabEvent;
        }
Beispiel #4
0
        public override void Init()
        {
            Debug.LogError("Initted");
            EventManager.onPossess += EventManager_onPossess;
            IceManager.LoadFromJSON();

            base.Init();
        }
Beispiel #5
0
        private void EventManager_onPossess(Creature creature, EventTime eventTime)
        {
            if (creature.container.contents.Where(c => c.itemData.id == "SpellIceItem").Count() <= 0)
            {
                creature.container.AddContent(Catalog.GetData <ItemData>("SpellIceItem"));
            }

            IceManager.LoadFromSave(creature);
        }
Beispiel #6
0
        private void ReloadUnlocks()
        {
            levelTxt.text  = IceManager.level.ToString();
            xpTxt.text     = IceManager.xp.ToString("0.0") + " / " + IceManager.XpForNextLevel(IceManager.level).ToString();
            pointsTxt.text = IceManager.levelPoints.ToString();

            foreach (KeyValuePair <IceManager.AbilitiesEnum, IceManager.Ability> kvp in IceManager.abilityDict)
            {
                SetUnlockedState(kvp.Value.customRefName, kvp.Key);
            }
        }
Beispiel #7
0
        public static void IceStats()
        {
            Debug.Log("Level: " + IceManager.level);
            Debug.Log("XP: " + IceManager.xp + " / " + IceManager.XpForNextLevel(IceManager.level));
            Debug.Log("Points to spend: " + IceManager.levelPoints);

            foreach (KeyValuePair <IceManager.AbilitiesEnum, IceManager.Ability> kvp in IceManager.abilityDict)
            {
                Debug.Log(kvp.Key.ToString() + "Unlocked: " + kvp.Value.unlocked);
            }

            Debug.Log("ChargeSpeed: " + IceManager.chargeSpeed);
            Debug.Log("SpikeSpeed: " + IceManager.spikeSpeed);
        }
Beispiel #8
0
        private void LoadAbilityPage(string abilityName, string abilityDsc, int cost, IceManager.AbilitiesEnum abilitiesEnum)
        {
            menuData.page2.gameObject.SetActive(true);

            abilityTitle.text       = abilityName;
            abilityDescription.text = abilityDsc;
            this.cost.text          = cost.ToString();

            if (IceManager.IsAbilityUnlocked(abilitiesEnum))
            {
                this.unlockBTN.interactable = false;
                this.unlockBTN.GetComponentInChildren <Text>().text = "Owned";
            }
            else
            {
                this.unlockBTN.interactable = true;
                this.unlockBTN.GetComponentInChildren <Text>().text = "Unlock";
            }


            selectedAbility = abilitiesEnum;
        }