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); }
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"; } }); }
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; }
public override void Init() { Debug.LogError("Initted"); EventManager.onPossess += EventManager_onPossess; IceManager.LoadFromJSON(); base.Init(); }
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); }
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); } }
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); }
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; }