public static void AddWeapon(BaseItem.WeaponModelType model, GameObject go, Vector3 offset, Vector3 rotation, Vector3 tip, float Scale) { try { prefabs.Add((int)model, go); go.transform.localRotation = new Quaternion(0.4f, -0.6f, -0.6f, 0.4f); go.transform.localPosition = new Vector3(0.0f, 0.0f, -0.8f); go.transform.Rotate(rotation, Space.Self); go.transform.localPosition += offset; go.transform.localScale = Vector3.one * Scale; if (CustomWeapon.trailMaterial == null) { CustomWeapon.trailMaterial = new Material(Shader.Find("Unlit/Transparent")) { color = new Color(1, 0.5f, 0.25f, 0.4f), mainTexture = Texture2D.whiteTexture }; } prefabDatas.Add((int)model, new CustomWeaponPrefabData(model, offset, rotation, tip, Scale, go)); go.SetActive(false); } catch (System.Exception e) { ModAPI.Console.Write("adding weapon error\n" + e.ToString()); } }
public static void AddWeapon(BaseItem.WeaponModelType model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float Scale) { try { GameObject go = new GameObject(); prefabs.Add((int)model, go); Renderer renderer = go.AddComponent <MeshRenderer>(); renderer.material = material; go.AddComponent <MeshFilter>().mesh = Res.ResourceLoader.instance.LoadedMeshes[mesh]; go.transform.localRotation = new Quaternion(0.4f, -0.6f, -0.6f, 0.4f); go.transform.localPosition = new Vector3(0.0f, 0.0f, -0.8f);//+ new Vector3(-0.26f, 1.4f, -1.255f); go.transform.Rotate(rotation, Space.Self); go.transform.localPosition += offset; go.transform.localScale = Vector3.one * Scale; if (CustomWeapon.trailMaterial == null) { CustomWeapon.trailMaterial = new Material(Shader.Find("Unlit/Transparent")) { color = new Color(1, 0.5f, 0.25f, 0.4f), mainTexture = Texture2D.whiteTexture }; } prefabDatas.Add((int)model, new CustomWeaponPrefabData(model, offset, rotation, tip, Scale, go)); go.SetActive(false); } catch (System.Exception e) { ModAPI.Console.Write("adding weapon error\n" + e.ToString()); } }
public CustomWeaponPrefabData(BaseItem.WeaponModelType model, Vector3 offset, Vector3 rotation, Vector3 tip, float scale, GameObject g) { this.model = model; this.offset = offset; this.rotation = rotation; this.tip = tip; Scale = scale; this.obj = g; }
public CustomWeapon(BaseItem.WeaponModelType model, GameObject obj, TrailRenderer trail, Vector3 offset, Vector3 rotation, float scale = 1) { this.damage = 6; this.swingspeed = 1; this.tiredswingspeed = 1; this.smashDamage = 15; this.treeDamage = 0; this.staminaDrain = 8; this.blockTreeCut = false; this.offset = offset; this.rotation = rotation; ColliderScale = 1; Scale = scale; this.obj = obj; this.trail = trail; InitializeCustomWeapon(); PlayerInventoryMod.customWeapons.Add(model, this); }
public CustomWeapon(BaseItem.WeaponModelType model, GameObject obj, Vector3 offset, Vector3 rotation, float scale = 1) { this.damage = 6; this.swingspeed = 1; this.tiredswingspeed = 1; this.smashDamage = 15; this.treeDamage = 0; this.staminaDrain = 8; this.blockTreeCut = false; this.offset = offset; this.rotation = rotation; ColliderScale = 1; Scale = scale; this.obj = obj; obj.transform.localRotation = Quaternion.identity; obj.transform.Rotate(rotation, Space.Self); obj.transform.localPosition = offset; obj.transform.localScale = Vector3.one * Scale; PlayerInventoryMod.customWeapons.Add(model, this); }
public CustomWeapon(BaseItem.WeaponModelType model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float scale = 1) { this.damage = 6; this.swingspeed = 1; this.tiredswingspeed = 1; this.smashDamage = 15; this.treeDamage = 0; this.staminaDrain = 8; this.blockTreeCut = false; this.mesh = Res.ResourceLoader.instance.LoadedMeshes[mesh]; this.offset = offset; this.rotation = rotation; this.material = material; this.tipPosition = tip; ColliderScale = 1; Scale = scale; CreateGameObject(); InitializeCustomWeapon(); PlayerInventoryMod.customWeapons.Add(model, this); }
public CustomWeapon(BaseItem.WeaponModelType model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float colliderScale = 1, float scale = 1, float damage = 5, float smashDamage = 15, float swingspeed = 1, float triedswingspeed = 1, float staminaDrain = 6, bool noTreeCut = false, float treeDamage = 1) { this.damage = damage; this.swingspeed = swingspeed; this.tiredswingspeed = triedswingspeed; this.smashDamage = smashDamage; this.treeDamage = treeDamage; this.staminaDrain = staminaDrain; this.canChopTrees = noTreeCut; this.mesh = Res.ResourceLoader.instance.LoadedMeshes[mesh]; this.offset = offset; this.rotation = rotation; this.material = material; this.tipPosition = tip; ColliderScale = colliderScale; Scale = scale; CreateGameObject(); InitializeCustomWeapon(); PlayerInventoryMod.customWeapons.Add(model, this); }
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)); }