protected override void Update() { if (mainTriggerScript != null) { if (PlayerInventoryMod.EquippedModel != BaseItem.WeaponModelType.None && PlayerInventoryMod.EquippedModel != BaseItem.WeaponModelType.Greatbow) { CustomWeapon cw = PlayerInventoryMod.customWeapons[PlayerInventoryMod.EquippedModel]; setup.pmStamina.FsmVariables.GetFsmFloat("notTiredSpeed").Value = animSpeed * cw.swingspeed; setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * ModdedPlayer.Stats.attackStaminaCost; setup.pmStamina.FsmVariables.GetFsmFloat("tiredSpeed").Value = animTiredSpeed * cw.tiredswingspeed; setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * (ModdedPlayer.Stats.attackStaminaCost); LocalPlayer.Stats.blockDamagePercent = ModdedPlayer.Stats.block * blockDamagePercent; } else { setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * (ModdedPlayer.Stats.attackStaminaCost); setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * (ModdedPlayer.Stats.attackStaminaCost); LocalPlayer.Stats.blockDamagePercent = ModdedPlayer.Stats.block * blockDamagePercent; } //float ats = ModdedPlayer.instance.AttackSpeed; //if (GreatBow.isEnabled) ats /= 10f; //if (LocalPlayer.Stats.Stamina > 4) //{ // animator.speed = ats; //} //else //{ // animator.speed =Mathf.Min( 0.5f, ats/2); //} } base.Update(); }
protected override void Update() { if (mainTriggerScript != null) { if (PlayerInventoryMod.EquippedModel != BaseItem.WeaponModelType.None) { CustomWeapon cw = PlayerInventoryMod.customWeapons[PlayerInventoryMod.EquippedModel]; setup.pmStamina.FsmVariables.GetFsmFloat("notTiredSpeed").Value = animSpeed * cw.swingspeed; setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * ModdedPlayer.instance.StaminaAttackCost; setup.pmStamina.FsmVariables.GetFsmFloat("tiredSpeed").Value = animTiredSpeed * cw.tiredswingspeed; setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * (ModdedPlayer.instance.StaminaAttackCost); LocalPlayer.Stats.blockDamagePercent = ModdedPlayer.instance.BlockFactor * blockDamagePercent / 5; } else { setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * (ModdedPlayer.instance.StaminaAttackCost); setup.pmStamina.FsmVariables.GetFsmFloat("staminaDrain").Value = staminaDrain * -1f * (ModdedPlayer.instance.StaminaAttackCost); LocalPlayer.Stats.blockDamagePercent = ModdedPlayer.instance.BlockFactor * blockDamagePercent / 5; } if (LocalPlayer.Stats.Stamina > 7) { animator.speed = ModdedPlayer.instance.AttackSpeed; } else { animator.speed = 0.5f; } } base.Update(); }
public void CreateCustomWeapons_Spears() { if (customWeapons.ContainsKey(BaseItem.WeaponModelType.Polearm) && customWeapons[BaseItem.WeaponModelType.Polearm].obj != null) { customWeapons.Remove(BaseItem.WeaponModelType.Polearm); } var original = _itemViews[158]._held; original.gameObject.SetActive(true); ModAPI.Console.Write("OG scale: " + _itemViews[158]._heldWeaponInfo.transform.localScale); var assets = Res.ResourceLoader.GetAssetBundle(2005).LoadAssetWithSubAssets("assets/PolearmPrefab.prefab"); foreach (var asset in assets) { ModAPI.Console.Write(asset.name); if (asset.name == "PolearmPrefab") { var Clone = new GameObject(); Clone.transform.SetParent(original.transform); Clone.transform.localPosition = Vector3.zero; Clone.transform.localRotation = Quaternion.identity; var secondChild = original.transform.GetChild(1); //second child contains the og model of the spear GameObject modelClone = (GameObject)Instantiate(asset, LocalPlayer.Transform.position, Quaternion.identity, Clone.transform); modelClone.transform.localPosition = secondChild.localPosition; modelClone.transform.localRotation = secondChild.localRotation; modelClone.transform.Rotate(new Vector3(90, 0, 0)); modelClone.transform.localScale *= 0.7f / 3; ModAPI.Console.Write(original.transform.GetChild(1).gameObject.name, "1st child"); //Destroy(secondChild.gameObject); var polearm = new CustomWeapon(BaseItem.WeaponModelType.Polearm, Clone, Vector3.zero, new Vector3(0, 0, 0), 2) { spearType = true, tiredswingspeed = 20, damage = 50f, staminaDrain = 14, blockTreeCut = false, smashDamage = 350f, swingspeed = 100, ColliderScale = 3f, treeDamage = 1, objectToHide = original.transform.GetChild(1).gameObject }; original.gameObject.SetActive(false); return; } } ModAPI.Console.Write("Big problem with spear"); }
protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld) { if (itemView != null) { EquippedModel = BaseItem.WeaponModelType.None; if (itemView._heldWeaponInfo.transform.parent.name == "AxePlaneHeld") { if (!SetupComplete) { try { if (instance == null) { instance = this; } //ModAPI.Log.Write("SETUP: Custom weapons"); //ModAPI.Log.Write("small axe: " + itemView._heldWeaponInfo.smallAxe); //ModAPI.Log.Write("allowBodyCut: " + itemView._heldWeaponInfo.allowBodyCut); //ModAPI.Log.Write("animSpeed: " + itemView._heldWeaponInfo.animSpeed); //ModAPI.Log.Write("animTiredSpeed: " + itemView._heldWeaponInfo.animTiredSpeed); //ModAPI.Log.Write("blockDamagePercent: " + itemView._heldWeaponInfo.blockDamagePercent); //ModAPI.Log.Write("blockStaminaDrain: " + itemView._heldWeaponInfo.blockStaminaDrain); //ModAPI.Log.Write("chainSaw: " + itemView._heldWeaponInfo.chainSaw); //ModAPI.Log.Write("canDoGroundAxeChop: " + itemView._heldWeaponInfo.canDoGroundAxeChop); //ModAPI.Log.Write("doSingleArmBlock: " + itemView._heldWeaponInfo.doSingleArmBlock); //ModAPI.Log.Write("fireStick: " + itemView._heldWeaponInfo.fireStick); //ModAPI.Log.Write("machete: " + itemView._heldWeaponInfo.machete); //ModAPI.Log.Write("noBodyCut: " + itemView._heldWeaponInfo.noBodyCut); //ModAPI.Log.Write("noTreeCut: " + itemView._heldWeaponInfo.noTreeCut); //ModAPI.Log.Write("pushForce: " + itemView._heldWeaponInfo.pushForce); //ModAPI.Log.Write("repairTool: " + itemView._heldWeaponInfo.repairTool); //ModAPI.Log.Write("rock: " + itemView._heldWeaponInfo.rock); //ModAPI.Log.Write("shell: " + itemView._heldWeaponInfo.shell); //ModAPI.Log.Write("soundDetectRange: " + itemView._heldWeaponInfo.soundDetectRange); //ModAPI.Log.Write("spear: " + itemView._heldWeaponInfo.spear); //ModAPI.Log.Write("staminaDrain: " + itemView._heldWeaponInfo.staminaDrain); //ModAPI.Log.Write("stick: " + itemView._heldWeaponInfo.stick); //ModAPI.Log.Write("tiredSpeed: " + itemView._heldWeaponInfo.tiredSpeed); //ModAPI.Log.Write("treeDamage: " + itemView._heldWeaponInfo.treeDamage); //ModAPI.Log.Write("weaponDamage: " + itemView._heldWeaponInfo.weaponDamage); //ModAPI.Log.Write("weaponRange: " + itemView._heldWeaponInfo.weaponRange); //ModAPI.Log.Write("weaponSpeed: " + itemView._heldWeaponInfo.weaponSpeed); //ModAPI.Log.Write("weaponAudio name: " + itemView._heldWeaponInfo.weaponAudio.name); //item id is 80 for plane axe //collider dimensions: //(3.1, 1.6, 0.5) size //(1.1, 0.4, 0.0) center SetupComplete = true; customWeapons.Clear(); originalPlaneAxe = itemView; originalPlaneAxeModel = itemView._heldWeaponInfo.transform.parent.GetChild(2).gameObject; originalRotation = originalPlaneAxeModel.transform.localRotation; OriginalOffset = originalPlaneAxeModel.transform.localPosition; originalParrent = originalPlaneAxeModel.transform.parent; OriginalTreeDmg = itemView._heldWeaponInfo.treeDamage; originalMesh = originalPlaneAxeModel.GetComponent <MeshFilter>().mesh; noMesh = new Mesh(); //Creating custom weapons--------- CreateCustomWeapons(); } catch (System.Exception eee) { ModAPI.Log.Write("Error with setting up custom weaponry " + eee.ToString()); } } if (ToEquipWeaponType != BaseItem.WeaponModelType.None) { //ModAPI.Console.Write("Equipping custom weapon " + CustomEquipModel.ToString()); EquippedModel = ToEquipWeaponType; try { foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } CustomWeapon cw = customWeapons[ToEquipWeaponType]; cw.obj.SetActive(true); itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed * cw.swingspeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed * cw.triedswingspeed; itemView._heldWeaponInfo.smashDamage = cw.smashDamage; itemView._heldWeaponInfo.weaponDamage = cw.damage; itemView._heldWeaponInfo.treeDamage = cw.treeDamage; itemView._heldWeaponInfo.weaponRange = cw.ColliderScale * 3; itemView._heldWeaponInfo.staminaDrain = cw.staminaDrain; itemView._heldWeaponInfo.noTreeCut = cw.canChopTrees; itemView._heldWeaponInfo.transform.localScale = Vector3.one * cw.ColliderScale; originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = noMesh; } catch (System.Exception exc) { ModAPI.Log.Write("Error with EQUIPPING custom weaponry " + exc.ToString()); } } else { //ModAPI.Console.Write("EQUIPPING normal plane axe"); itemView._heldWeaponInfo.transform.parent.GetChild(2).gameObject.SetActive(true); foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed; itemView._heldWeaponInfo.smashDamage = itemView._heldWeaponInfo.baseSmashDamage; itemView._heldWeaponInfo.weaponDamage = itemView._heldWeaponInfo.baseWeaponDamage; itemView._heldWeaponInfo.treeDamage = OriginalTreeDmg; itemView._heldWeaponInfo.weaponRange = itemView._heldWeaponInfo.baseWeaponRange; itemView._heldWeaponInfo.staminaDrain = itemView._heldWeaponInfo.baseStaminaDrain; itemView._heldWeaponInfo.noTreeCut = false; itemView._heldWeaponInfo.transform.localScale = Vector3.one * 0.6f; originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = originalMesh; } } } return(base.Equip(itemView, pickedUpFromWorld)); }
protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld) { if (!ModSettings.IsDedicated) { if (itemView != null) { EquippedModel = BaseItem.WeaponModelType.None; if (itemView._heldWeaponInfo.transform.parent.name == "AxePlaneHeld") { if (ModReferences.rightHandTransform == null) { try { ModReferences.rightHandTransform = itemView._heldWeaponInfo.transform.parent.gameObject.transform.parent.transform; Debug.LogWarning(ModReferences.rightHandTransform.name); } catch (System.Exception e) { Debug.LogWarning(e.ToString()); } } if (!SetupComplete) { try { if (instance == null) { instance = this; } SetupComplete = true; customWeapons.Clear(); originalPlaneAxe = itemView; originalPlaneAxeModel = itemView._heldWeaponInfo.transform.parent.GetChild(2).gameObject; originalRotation = originalPlaneAxeModel.transform.localRotation; OriginalOffset = originalPlaneAxeModel.transform.localPosition; originalParrent = originalPlaneAxeModel.transform.parent; OriginalTreeDmg = itemView._heldWeaponInfo.treeDamage; originalMesh = originalPlaneAxeModel.GetComponent <MeshFilter>().mesh; noMesh = new Mesh(); //Creating custom weapons--------- CreateCustomWeapons(); } catch (System.Exception eee) { ModAPI.Log.Write("Error with setting up custom weaponry " + eee.ToString()); } } if (ToEquipWeaponType != BaseItem.WeaponModelType.None) { EquippedModel = ToEquipWeaponType; try { foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } CustomWeapon cw = customWeapons[ToEquipWeaponType]; cw.obj.SetActive(true); itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed * cw.swingspeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed * cw.tiredswingspeed; itemView._heldWeaponInfo.smashDamage = cw.smashDamage; itemView._heldWeaponInfo.weaponDamage = cw.damage; itemView._heldWeaponInfo.treeDamage = cw.treeDamage; itemView._heldWeaponInfo.weaponRange = cw.ColliderScale * 3; itemView._heldWeaponInfo.staminaDrain = cw.staminaDrain; itemView._heldWeaponInfo.noTreeCut = cw.canChopTrees; itemView._heldWeaponInfo.transform.localScale = Vector3.one * cw.ColliderScale; originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = noMesh; } catch (System.Exception exc) { ModAPI.Log.Write("Error with EQUIPPING custom weaponry " + exc.ToString()); } } else { itemView._heldWeaponInfo.transform.parent.GetChild(2).gameObject.SetActive(true); foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed; itemView._heldWeaponInfo.smashDamage = itemView._heldWeaponInfo.baseSmashDamage; itemView._heldWeaponInfo.weaponDamage = itemView._heldWeaponInfo.baseWeaponDamage; itemView._heldWeaponInfo.treeDamage = OriginalTreeDmg; itemView._heldWeaponInfo.weaponRange = itemView._heldWeaponInfo.baseWeaponRange; itemView._heldWeaponInfo.staminaDrain = itemView._heldWeaponInfo.baseStaminaDrain; itemView._heldWeaponInfo.noTreeCut = false; itemView._heldWeaponInfo.transform.localScale = Vector3.one * 0.6f; originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = originalMesh; } } } } return(base.Equip(itemView, pickedUpFromWorld)); }
protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld) { if (!ModSettings.IsDedicated) { if (GreatBow.instance != null) { GreatBow.instance.SetActive(false); } if (itemView != null) { EquippedModel = BaseItem.WeaponModelType.None; if (itemView._heldWeaponInfo.transform.parent.name == "AxePlaneHeld") { if (BoltNetwork.isRunning) { using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) { w.Write(28); w.Write(ModReferences.ThisPlayerID); w.Write((int)PlayerInventoryMod.ToEquipWeaponType); w.Close(); } ChampionsOfForest.Network.NetworkManager.SendLine(answerStream.ToArray(), ChampionsOfForest.Network.NetworkManager.Target.Others); answerStream.Close(); } } if (ModReferences.rightHandTransform == null) { try { ModReferences.rightHandTransform = itemView._heldWeaponInfo.transform.parent.gameObject.transform.parent.transform; } catch (System.Exception) { } } if (!SetupComplete) { try { if (instance == null) { instance = this; } SetupComplete = true; customWeapons.Clear(); originalPlaneAxe = itemView; originalPlaneAxeModel = itemView._heldWeaponInfo.transform.parent.GetChild(2).gameObject; originalRotation = originalPlaneAxeModel.transform.localRotation; OriginalOffset = originalPlaneAxeModel.transform.localPosition; originalParrent = originalPlaneAxeModel.transform.parent; OriginalTreeDmg = itemView._heldWeaponInfo.treeDamage; originalMesh = originalPlaneAxeModel.GetComponent <MeshFilter>().mesh; noMesh = new Mesh(); //Creating custom weapons--------- CreateCustomWeapons(); } catch (System.Exception eee) { ModAPI.Log.Write("Error with setting up custom weaponry " + eee.ToString()); } } if (ToEquipWeaponType != BaseItem.WeaponModelType.None) { EquippedModel = ToEquipWeaponType; try { foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } CustomWeapon cw = customWeapons[ToEquipWeaponType]; cw.obj.SetActive(true); itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed * cw.swingspeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed * cw.tiredswingspeed; itemView._heldWeaponInfo.smashDamage = cw.smashDamage; itemView._heldWeaponInfo.weaponDamage = cw.damage; itemView._heldWeaponInfo.treeDamage = cw.treeDamage; itemView._heldWeaponInfo.weaponRange = cw.ColliderScale * 3; itemView._heldWeaponInfo.staminaDrain = cw.staminaDrain; itemView._heldWeaponInfo.noTreeCut = cw.blockTreeCut; itemView._heldWeaponInfo.transform.localScale = Vector3.one * cw.ColliderScale; originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = noMesh; } catch (System.Exception exc) { ModAPI.Log.Write("Error with EQUIPPING custom weaponry " + exc.ToString()); } } else { itemView._heldWeaponInfo.transform.parent.GetChild(2).gameObject.SetActive(true); foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed; itemView._heldWeaponInfo.smashDamage = itemView._heldWeaponInfo.baseSmashDamage; itemView._heldWeaponInfo.weaponDamage = itemView._heldWeaponInfo.baseWeaponDamage; itemView._heldWeaponInfo.treeDamage = OriginalTreeDmg; itemView._heldWeaponInfo.weaponRange = itemView._heldWeaponInfo.baseWeaponRange; itemView._heldWeaponInfo.staminaDrain = itemView._heldWeaponInfo.baseStaminaDrain; itemView._heldWeaponInfo.noTreeCut = false; itemView._heldWeaponInfo.transform.localScale = Vector3.one * 0.6f; originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = originalMesh; } } else if (BoltNetwork.isRunning) { using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) { w.Write(28); w.Write(ModReferences.ThisPlayerID); w.Write(0); w.Close(); } ChampionsOfForest.Network.NetworkManager.SendLine(answerStream.ToArray(), ChampionsOfForest.Network.NetworkManager.Target.Others); answerStream.Close(); } } } } return(base.Equip(itemView, pickedUpFromWorld)); }
protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld) { COTFEvents.Instance.OnWeaponEquip.Invoke(); Spells.ActiveSpellManager.Instance.OnWeaponEquipped(); if (!ModSettings.IsDedicated) { if (GreatBow.instance != null) { GreatBow.instance.SetActive(false); } if (ToEquipWeaponType == BaseItem.WeaponModelType.None) { foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); item.objectToHide?.SetActive(true); } } if (itemView != null) { if (EquippedModel != BaseItem.WeaponModelType.None) { customWeapons[EquippedModel].objectToHide?.SetActive(true); } EquippedModel = BaseItem.WeaponModelType.None; //Send network event to display a custom weapon for other players if (BoltNetwork.isRunning && ToEquipWeaponType != BaseItem.WeaponModelType.None) { using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) { w.Write(28); w.Write(ModReferences.ThisPlayerID); w.Write((int)ToEquipWeaponType); w.Close(); } Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Others); answerStream.Close(); } } if (itemView.gameObject.name == "axePlane_Inv") { if (ToEquipWeaponType != BaseItem.WeaponModelType.None) { try { foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } CustomWeapon cw = customWeapons[ToEquipWeaponType]; cw.obj.SetActive(true); itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed * cw.swingspeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed * cw.tiredswingspeed; itemView._heldWeaponInfo.smashDamage = cw.smashDamage; itemView._heldWeaponInfo.weaponDamage = cw.damage; itemView._heldWeaponInfo.treeDamage = cw.treeDamage; itemView._heldWeaponInfo.weaponRange = cw.ColliderScale * 3; itemView._heldWeaponInfo.staminaDrain = cw.staminaDrain; itemView._heldWeaponInfo.noTreeCut = cw.blockTreeCut; itemView._heldWeaponInfo.spear = cw.spearType; itemView._heldWeaponInfo.transform.localScale = Vector3.one * cw.ColliderScale; cw.objectToHide?.SetActive(false); originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = noMesh; } catch (System.Exception exc) { ModAPI.Log.Write("Error with EQUIPPING custom weaponry " + exc.ToString()); } EquippedModel = ToEquipWeaponType; } else //equip the base plane axe { itemView._heldWeaponInfo.transform.parent.GetChild(2).gameObject.SetActive(true); foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed; itemView._heldWeaponInfo.smashDamage = itemView._heldWeaponInfo.baseSmashDamage; itemView._heldWeaponInfo.weaponDamage = itemView._heldWeaponInfo.baseWeaponDamage; itemView._heldWeaponInfo.treeDamage = 1; itemView._heldWeaponInfo.weaponRange = itemView._heldWeaponInfo.baseWeaponRange; itemView._heldWeaponInfo.staminaDrain = itemView._heldWeaponInfo.baseStaminaDrain; itemView._heldWeaponInfo.noTreeCut = false; itemView._heldWeaponInfo.transform.localScale = Vector3.one * 0.6f; originalPlaneAxeModel.GetComponent <MeshFilter>().mesh = originalMesh; } } else if (itemView == _itemViews[158]) //spear { if (ToEquipWeaponType == BaseItem.WeaponModelType.Polearm) { EquippedModel = ToEquipWeaponType; try { foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } CustomWeapon cw = customWeapons[ToEquipWeaponType]; cw.obj.SetActive(true); itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed * cw.swingspeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed * cw.tiredswingspeed; itemView._heldWeaponInfo.smashDamage = cw.smashDamage; itemView._heldWeaponInfo.weaponDamage = cw.damage; itemView._heldWeaponInfo.treeDamage = cw.treeDamage; itemView._heldWeaponInfo.weaponRange = cw.ColliderScale * 3; itemView._heldWeaponInfo.staminaDrain = cw.staminaDrain; itemView._heldWeaponInfo.noTreeCut = cw.blockTreeCut; itemView._heldWeaponInfo.spear = cw.spearType; cw.objectToHide.GetComponent <Renderer>().enabled = false; } catch (System.Exception exc) { ModAPI.Log.Write("Error with EQUIPPING custom weaponry " + exc.ToString()); } } else { foreach (CustomWeapon item in customWeapons.Values) { item.obj.SetActive(false); } itemView._heldWeaponInfo.weaponSpeed = itemView._heldWeaponInfo.baseWeaponSpeed; itemView._heldWeaponInfo.tiredSpeed = itemView._heldWeaponInfo.baseTiredSpeed; itemView._heldWeaponInfo.smashDamage = itemView._heldWeaponInfo.baseSmashDamage; itemView._heldWeaponInfo.weaponDamage = itemView._heldWeaponInfo.baseWeaponDamage; itemView._heldWeaponInfo.weaponRange = itemView._heldWeaponInfo.baseWeaponRange; itemView._heldWeaponInfo.staminaDrain = itemView._heldWeaponInfo.baseStaminaDrain; itemView._heldWeaponInfo.noTreeCut = false; itemView._heldWeaponInfo.spear = true; customWeapons[BaseItem.WeaponModelType.Polearm].objectToHide.GetComponent <Renderer>().enabled = true; } } } } return(base.Equip(itemView, pickedUpFromWorld)); }