public bool Equip(HorseItem.Type type, bool forceUpdate = false) { if (type == equipedItem.type && !forceUpdate) { return(true); } if (type != HorseItem.Type.None) { HorseItem newItem = Arsenal.Instance.Get(type); if (newItem) { SkinnedMeshRenderer smr = newItem.GetComponent <SkinnedMeshRenderer>(); if (smr) { CopySkinnedMesh(smr, equipedMesh); HorseItem.Copy(newItem, equipedItem); return(true); } } } equipedItem.Clear(); equipedMesh.sharedMesh = null; return(false); }
public static void Copy(HorseItem source, HorseItem destination) { Item.Copy(source, destination); destination.type = source.type; destination.load = source.load; destination.armor = source.armor; }
public static Item AttachItemCopy(Item original, GameObject destination) { switch (original.itemType) { case Item.ItemType.Backpack: BackpackItem backpack = destination.AddComponent <BackpackItem>(); BackpackItem.Copy(original as BackpackItem, backpack); return(backpack); case Item.ItemType.Body: BodyItem body = destination.AddComponent <BodyItem>(); BodyItem.Copy(original as BodyItem, body); return(body); case Item.ItemType.Head: HeadItem head = destination.AddComponent <HeadItem>(); HeadItem.Copy(original as HeadItem, head); return(head); case Item.ItemType.Horse: HorseItem horse = destination.AddComponent <HorseItem>(); HorseItem.Copy(original as HorseItem, horse); return(horse); case Item.ItemType.Second: SecondItem second = destination.AddComponent <SecondItem>(); SecondItem.Copy(original as SecondItem, second); return(second); case Item.ItemType.Shield: ShieldItem shield = destination.AddComponent <ShieldItem>(); ShieldItem.Copy(original as ShieldItem, shield); return(shield); case Item.ItemType.Weapon: WeaponItem weapon = destination.AddComponent <WeaponItem>(); WeaponItem.Copy(original as WeaponItem, weapon); return(weapon); case Item.ItemType.Resource: ResourceItem resource = destination.AddComponent <ResourceItem>(); ResourceItem.Copy(original as ResourceItem, resource); return(resource); default: Debug.LogError("Unsuported Item type"); return(null); } }
public GameObject GetPickable(HorseItem.Type type, bool showName = false, bool destroyOnPick = true) { HorseItem item = Get(type); if (!item) { return(null); } GameObject go = Instantiate(pickablePrefab.gameObject); go.name = type.ToString(); go.transform.parent = null; go.transform.position = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableHorse; HorseItem.Copy(item, go.AddComponent <HorseItem>()); go.SetActive(true); SkinnedMeshRenderer skin = item.gameObject.GetComponent <SkinnedMeshRenderer>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.itemMesh.gameObject.SetActive(false); pickable.body.gameObject.SetActive(false); pickable.horse.gameObject.SetActive(true); if (skin) { BodySlot.CopySkinnedMesh(skin, pickable.horse); } else { pickable.horse.gameObject.SetActive(false); } pickable.textmesh.gameObject.SetActive(showName); go.GetComponent <Item>().destroyOnPick = destroyOnPick; return(go); }
public bool EquipInteraction(InteractionType.Type type, GameObject interactor) { bool success = false; if (type == InteractionType.Type.pickableWeapon) { WeaponItem item = interactor.GetComponent <WeaponItem>(); if (item && playerController.weapon.Equip(item.type)) { if (item.forbidSecond || playerController.secondHand.equipedItem.forbidWeapon) { if (playerController.secondHand.equipedItem.type != SecondItem.Type.None) { inventory.AddItem(playerController.secondHand.equipedItem.Summarize(), 1); } playerController.secondHand.Equip(SecondItem.Type.None); } if (item.forbidShield) { if (playerController.shield.equipedItem.type != ShieldItem.Type.None) { inventory.AddItem(playerController.shield.equipedItem.Summarize(), 1); } playerController.shield.Equip(ShieldItem.Type.None); } success = true; playerController.needEquipementAnimationUpdate = true; if (ToolDictionary.instance.tools.ContainsKey(playerController.weapon.equipedItem.toolFamily)) { List <AudioClip> sounds = ToolDictionary.instance.tools[playerController.weapon.equipedItem.toolFamily].collectionSound; audiosource.clip = sounds[Random.Range(0, sounds.Count)]; audiosource.Play(); } } } else if (type == InteractionType.Type.pickableBackpack) { BackpackItem item = interactor.GetComponent <BackpackItem>(); if (item && playerController.backpack.Equip(item.type)) { success = true; } playerController.needEquipementAnimationUpdate = true; if (success) { inventory.capacity = item.capacity; } if (ToolDictionary.instance.tools.ContainsKey(playerController.backpack.equipedItem.toolFamily)) { List <AudioClip> sounds = ToolDictionary.instance.tools[playerController.backpack.equipedItem.toolFamily].collectionSound; audiosource.clip = sounds[Random.Range(0, sounds.Count)]; audiosource.Play(); } } else if (type == InteractionType.Type.pickableHead) { HeadItem item = interactor.GetComponent <HeadItem>(); if (item && playerController.head.Equip(item.type)) { success = true; playerController.needEquipementAnimationUpdate = true; int index = Mathf.Clamp((int)HeadItem.getCategory(playerController.head.equipedItem.type), 0, wearHead.Count - 1); audiosource.clip = wearHead[index]; audiosource.Play(); } } else if (type == InteractionType.Type.pickableSecond) { SecondItem item = interactor.GetComponent <SecondItem>(); if (item && playerController.secondHand.Equip(item.type)) { if (item.forbidWeapon || playerController.weapon.equipedItem.forbidSecond) { if (playerController.weapon.equipedItem.type != WeaponItem.Type.None) { inventory.AddItem(playerController.weapon.equipedItem.Summarize(), 1); } playerController.weapon.Equip(WeaponItem.Type.None); } if (item.forbidShield) { if (playerController.shield.equipedItem.type != ShieldItem.Type.None) { inventory.AddItem(playerController.shield.equipedItem.Summarize(), 1); } playerController.shield.Equip(ShieldItem.Type.None); } success = true; playerController.needEquipementAnimationUpdate = true; } } else if (type == InteractionType.Type.pickableShield) { ShieldItem item = interactor.GetComponent <ShieldItem>(); if (item && playerController.shield.Equip(item.type)) { if (playerController.weapon.equipedItem.forbidShield) { if (playerController.weapon.equipedItem.type != WeaponItem.Type.None) { inventory.AddItem(playerController.weapon.equipedItem.Summarize(), 1); } playerController.weapon.Equip(WeaponItem.Type.None); } if (playerController.secondHand.equipedItem.forbidShield) { if (playerController.secondHand.equipedItem.type != SecondItem.Type.None) { inventory.AddItem(playerController.secondHand.equipedItem.Summarize(), 1); } playerController.secondHand.Equip(SecondItem.Type.None); } success = true; playerController.needEquipementAnimationUpdate = true; } } else if (type == InteractionType.Type.pickableBody) { BodyItem item = interactor.GetComponent <BodyItem>(); bool mounted = playerController.horse ? playerController.horse.equipedItem.type != HorseItem.Type.None : false; if (item && playerController.body.Equip(item.type, mounted)) { success = true; playerController.needEquipementAnimationUpdate = true; int index = Mathf.Clamp((int)BodyItem.getCategory(playerController.body.equipedItem.type), 0, wearBody.Count - 1); audiosource.clip = wearBody[index]; audiosource.Play(); } } else if (type == InteractionType.Type.pickableHorse) { HorseItem item = interactor.GetComponent <HorseItem>(); if ((playerController.horse && item.type == HorseItem.Type.None) || (!playerController.horse && item.type != HorseItem.Type.None)) { // change player template PlayerController playerTemplate; if (item.type == HorseItem.Type.None) { playerTemplate = Arsenal.Instance.playerTemplate; } else { playerTemplate = Arsenal.Instance.mountedPlayerTemplate; } PlayerController destination = Instantiate <PlayerController>(playerTemplate); destination.gameObject.name = playerTemplate.gameObject.name; // copy PlayerController.MainInstance = destination; PlayerController.Copy(playerController, destination); MapStreaming.instance.focusAgent = destination.transform; ConstructionSystem.instance.tpsController.target = destination.transform.Find("CameraTarget"); InteractionUI.instance.juicer = destination.interactionController.interactionJuicer; destination.interactionController.PickableInteraction(type, interactor); interactionJuicer.OnDelete(); Destroy(gameObject); } else { if (playerController.horse && item && playerController.horse.Equip(item.type)) { success = true; playerController.needEquipementAnimationUpdate = true; int index = Mathf.Clamp((int)BodyItem.getCategory(playerController.body.equipedItem.type), 0, wearBody.Count - 1); audiosource.clip = wearBody[index]; audiosource.Play(); bool mounted = playerController.horse ? playerController.horse.equipedItem.type != HorseItem.Type.None : false; playerController.body.Equip(playerController.body.equipedItem.type, mounted, true); inventory.onUpdateContent.Invoke(); } } } if (success) { playerController.RecomputeLoadFactor(); } return(success); }
private void InstanciateShop() { GameObject shopContainer = new GameObject("shopContainer"); shopContainer.transform.parent = transform; shopContainer.transform.localPosition = Vector3.zero; shopContainer.transform.localRotation = Quaternion.identity; shopContainer.transform.localScale = Vector3.one; shopContainer.SetActive(true); if (export_csv) { file_csv += "Arsenal items\n" + "Name;Load;Dammage;Armor;Capacity;Wood;Wheat;Stone;Iron;Gold;Crystal\n"; } // backpack Vector3 position = Vector3.zero; { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = BackpackItem.Type.None.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-2 * gap, position.y, position.z); go.AddComponent <InteractionType>().type = InteractionType.Type.pickableBackpack; go.AddComponent <BackpackItem>(); go.SetActive(true); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.body.gameObject.SetActive(false); if (export_csv) { file_csv += "\nbackpack items\n"; } } foreach (KeyValuePair <BackpackItem.Type, BackpackItem> item in backpackDictionary) { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = item.Key.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = position; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableBackpack; BackpackItem.Copy(item.Value, go.AddComponent <BackpackItem>()); go.SetActive(true); MeshFilter mf = item.Value.gameObject.GetComponent <MeshFilter>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } if (mf) { pickable.itemMesh.mesh = mf.mesh; } else { pickable.itemMesh.gameObject.SetActive(false); } pickable.body.gameObject.SetActive(false); if (createIcons) { pickable.textmesh.gameObject.SetActive(false); pickable.transform.localEulerAngles = new Vector3(0, 15, 0); cameraPivot.position = go.transform.position + new Vector3(-0.13f, 0.6f, 1.1f); if (item.Key == BackpackItem.Type.AdventureBackpack) { pickable.transform.localEulerAngles = new Vector3(0, 90, 0); cameraPivot.position = go.transform.position + new Vector3(0f, 0.7f, 0.9f); } CreateIcon(iconFolderPath + "/Backpacks/" + go.name + ".png"); } if (export_csv) { ItemCost cost = GetCost(item.Value.crafting); file_csv += item.Key.ToString() + ";" + item.Value.load.ToString() + ";0;0;" + item.Value.capacity.ToString() + ";" + cost.wood.ToString() + ";" + cost.wheat.ToString() + ";" + cost.stone.ToString() + ";" + cost.iron.ToString() + ";" + cost.gold.ToString() + ";" + cost.crystal.ToString() + "\n"; } position.x += gap; } // shields position.x = 0; position.z -= gap; position.y += gapY; { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = ShieldItem.Type.None.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-2 * gap, position.y, position.z); go.AddComponent <InteractionType>().type = InteractionType.Type.pickableShield; go.AddComponent <ShieldItem>(); go.SetActive(true); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.body.gameObject.SetActive(false); if (export_csv) { file_csv += "\nshield items\n"; } } foreach (KeyValuePair <ShieldItem.Type, ShieldItem> item in shieldDictionary) { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = item.Key.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = position; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableShield; ShieldItem.Copy(item.Value, go.AddComponent <ShieldItem>()); go.SetActive(true); MeshFilter mf = item.Value.gameObject.GetComponent <MeshFilter>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } if (mf) { pickable.itemMesh.mesh = mf.mesh; } else { pickable.itemMesh.gameObject.SetActive(false); } pickable.body.gameObject.SetActive(false); if (createIcons) { pickable.textmesh.gameObject.SetActive(false); pickable.transform.localEulerAngles = new Vector3(0, 30, 0); cameraPivot.position = go.transform.position + new Vector3(0f, 0.6f, 1.3f); CreateIcon(iconFolderPath + "/Shields/" + go.name + ".png"); } if (export_csv) { ItemCost cost = GetCost(item.Value.crafting); file_csv += item.Key.ToString() + ";" + item.Value.load.ToString() + ";0;" + item.Value.armor.ToString() + ";0;" + cost.wood.ToString() + ";" + cost.wheat.ToString() + ";" + cost.stone.ToString() + ";" + cost.iron.ToString() + ";" + cost.gold.ToString() + ";" + cost.crystal.ToString() + "\n"; } position.x += gap; } // second hand position.x = 0; position.z -= gap; position.y += gapY; { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = SecondItem.Type.None.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-2 * gap, position.y, position.z); go.AddComponent <InteractionType>().type = InteractionType.Type.pickableSecond; go.AddComponent <SecondItem>(); go.SetActive(true); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.body.gameObject.SetActive(false); if (export_csv) { file_csv += "\nsecond hand items\n"; } } foreach (KeyValuePair <SecondItem.Type, SecondItem> item in secondDictionary) { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = item.Key.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = position; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableSecond; SecondItem.Copy(item.Value, go.AddComponent <SecondItem>()); go.SetActive(true); MeshFilter mf = item.Value.gameObject.GetComponent <MeshFilter>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } if (mf) { pickable.itemMesh.mesh = mf.mesh; } else { pickable.itemMesh.gameObject.SetActive(false); } pickable.body.gameObject.SetActive(false); if (createIcons) { pickable.textmesh.gameObject.SetActive(false); pickable.transform.localEulerAngles = new Vector3(0, 0, -42); cameraPivot.position = go.transform.position + new Vector3(0.3f, 0.45f, 1.5f); CreateIcon(iconFolderPath + "/SecondHands/" + go.name + ".png"); } if (export_csv) { ItemCost cost = GetCost(item.Value.crafting); file_csv += item.Key.ToString() + ";" + item.Value.load.ToString() + ";" + item.Value.dammage.ToString() + ";0;0;" + cost.wood.ToString() + ";" + cost.wheat.ToString() + ";" + cost.stone.ToString() + ";" + cost.iron.ToString() + ";" + cost.gold.ToString() + ";" + cost.crystal.ToString() + "\n"; } position.x += gap; } // weapons position.x = 0; position.z -= gap; position.y += gapY; { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = WeaponItem.Type.None.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-2 * gap, position.y, position.z); go.AddComponent <InteractionType>().type = InteractionType.Type.pickableWeapon; go.AddComponent <WeaponItem>(); go.SetActive(true); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.body.gameObject.SetActive(false); if (export_csv) { file_csv += "\nweapon items\n"; } } foreach (KeyValuePair <WeaponItem.Type, WeaponItem> item in weaponDictionary) { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = item.Key.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = position; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableWeapon; WeaponItem.Copy(item.Value, go.AddComponent <WeaponItem>()); go.SetActive(true); MeshFilter mf = item.Value.gameObject.GetComponent <MeshFilter>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } if (mf) { pickable.itemMesh.mesh = mf.mesh; } else { pickable.itemMesh.gameObject.SetActive(false); } pickable.body.gameObject.SetActive(false); if (createIcons) { pickable.textmesh.gameObject.SetActive(false); pickable.transform.localEulerAngles = new Vector3(0, 0, -42); cameraPivot.position = go.transform.position + new Vector3(0.3f, 0.6f, 1.5f); if (item.Key == WeaponItem.Type.FireSword) { pickable.itemMesh.gameObject.transform.Find("swordFireEffect").gameObject.SetActive(true); } else if (item.Key == WeaponItem.Type.ElectricSword) { pickable.itemMesh.gameObject.transform.Find("swordElectricEffect").gameObject.SetActive(true); } CreateIcon(iconFolderPath + "/Weapons/" + go.name + ".png"); } if (export_csv) { ItemCost cost = GetCost(item.Value.crafting); file_csv += item.Key.ToString() + ";" + item.Value.load.ToString() + ";" + item.Value.dammage.ToString() + ";0;0;" + cost.wood.ToString() + ";" + cost.wheat.ToString() + ";" + cost.stone.ToString() + ";" + cost.iron.ToString() + ";" + cost.gold.ToString() + ";" + cost.crystal.ToString() + "\n"; } position.x += gap; } // heads position.x = 0; position.z -= gap; position.y += gapY; if (export_csv) { file_csv += "\nhead items\n"; } foreach (KeyValuePair <HeadItem.Type, HeadItem> item in headDictionary) { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = item.Key.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = position; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableHead; HeadItem.Copy(item.Value, go.AddComponent <HeadItem>()); go.SetActive(true); MeshFilter mf = item.Value.gameObject.GetComponent <MeshFilter>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } if (mf) { pickable.itemMesh.mesh = mf.mesh; } else { pickable.itemMesh.gameObject.SetActive(false); } pickable.body.gameObject.SetActive(false); if (createIcons) { pickable.textmesh.gameObject.SetActive(false); pickable.transform.localEulerAngles = new Vector3(0, 15, 0); cameraPivot.position = go.transform.position + new Vector3(0, 0.6f, 1f); CreateIcon(iconFolderPath + "/Heads/" + go.name + ".png"); } if (export_csv) { ItemCost cost = GetCost(item.Value.crafting); file_csv += item.Key.ToString() + ";" + item.Value.load.ToString() + ";0;" + item.Value.armor.ToString() + ";0;" + cost.wood.ToString() + ";" + cost.wheat.ToString() + ";" + cost.stone.ToString() + ";" + cost.iron.ToString() + ";" + cost.gold.ToString() + ";" + cost.crystal.ToString() + "\n"; } position.x += gap; } // bodies position.x = 0; position.z -= gap; position.y += gapY; if (export_csv) { file_csv += "\nbody items\n"; } foreach (KeyValuePair <BodyItem.Type, BodyItem> item in bodyDictionary) { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = item.Key.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = position; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableBody; BodyItem.Copy(item.Value, go.AddComponent <BodyItem>()); go.SetActive(true); SkinnedMeshRenderer skin = item.Value.gameObject.GetComponent <SkinnedMeshRenderer>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.itemMesh.gameObject.SetActive(false); if (skin) { BodySlot.CopySkinnedMesh(skin, pickable.body); } else { pickable.body.gameObject.SetActive(false); } if (createIcons) { pickable.textmesh.gameObject.SetActive(false); pickable.transform.localEulerAngles = new Vector3(0, 15, 0); cameraPivot.position = go.transform.position + new Vector3(0, 0.5f, 1.5f); CreateIcon(iconFolderPath + "/Bodies/" + go.name + ".png"); } if (export_csv) { ItemCost cost = GetCost(item.Value.crafting); file_csv += item.Key.ToString() + ";" + item.Value.load.ToString() + ";0;" + item.Value.armor.ToString() + ";0;" + cost.wood.ToString() + ";" + cost.wheat.ToString() + ";" + cost.stone.ToString() + ";" + cost.iron.ToString() + ";" + cost.gold.ToString() + ";" + cost.crystal.ToString() + "\n"; } position.x += gap; } // horses position.x = 0; position.z -= 2 * gap; position.y += gapY; { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = HorseItem.Type.None.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = new Vector3(-2 * gap, position.y, position.z); go.AddComponent <InteractionType>().type = InteractionType.Type.pickableHorse; go.AddComponent <HorseItem>(); go.SetActive(true); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.body.gameObject.SetActive(false); if (export_csv) { file_csv += "\nhorse items\n"; } } foreach (KeyValuePair <HorseItem.Type, HorseItem> item in horseDictionary) { GameObject go = Instantiate(pickablePrefab.gameObject); go.name = item.Key.ToString(); go.transform.parent = shopContainer.transform; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.transform.localPosition = position; go.AddComponent <InteractionType>().type = InteractionType.Type.pickableHorse; HorseItem.Copy(item.Value, go.AddComponent <HorseItem>()); go.SetActive(true); SkinnedMeshRenderer skin = item.Value.gameObject.GetComponent <SkinnedMeshRenderer>(); SpecialPickableShopArsenal pickable = go.GetComponent <SpecialPickableShopArsenal>(); pickable.textmesh.text = go.name; if (go.name.Length >= 8) { pickable.textmesh.characterSize *= 0.5f; } pickable.itemMesh.gameObject.SetActive(false); if (skin) { BodySlot.CopySkinnedMesh(skin, pickable.horse); } else { pickable.horse.gameObject.SetActive(false); } pickable.horse.gameObject.SetActive(true); pickable.body.gameObject.SetActive(false); if (createIcons) { pickable.textmesh.gameObject.SetActive(false); pickable.transform.localEulerAngles = new Vector3(0, 90, 0); cameraPivot.position = go.transform.position + new Vector3(0, 1, 3f); CreateIcon(iconFolderPath + "/Horses/" + go.name + ".png"); } if (export_csv) { file_csv += item.Key.ToString() + ";" + item.Value.load.ToString() + ";0;" + item.Value.armor.ToString() + ";0;0;0;0;0;0;0\n"; } position.x += gap; } if (export_csv) { StreamWriter writer = new StreamWriter("Assets/Resources/arsenal.csv", false); writer.WriteLine(file_csv); writer.Close(); } }
public float GetArmor(HorseItem alternative) { return(head.equipedItem.armor + body.equipedItem.armor + shield.equipedItem.armor + alternative.armor); }