public void AddNotesBody(BodyItem bodyItem) { if (!_bodyItems.Contains(bodyItem)) { _bodyItems.Add(bodyItem); } }
public bool Equip(BodyItem.Type type, bool mounted, bool forceUpdate = false) { if (type == equipedItem.type && !forceUpdate) { return(true); } if (type != BodyItem.Type.None) { BodyItem newItem = Arsenal.Instance.Get(type, mounted); if (newItem) { SkinnedMeshRenderer smr = newItem.GetComponent <SkinnedMeshRenderer>(); if (smr) { CopySkinnedMesh(smr, equipedMesh); BodyItem.Copy(newItem, equipedItem); return(true); } } } equipedItem.Clear(); equipedMesh.sharedMesh = null; return(false); }
public Item QuickSetEquipment(Item item) { if (item is HeadItem) { HeadItem head = item as HeadItem; HeadItem old = _headSlot.ChangeItem(head); return(old); } else if (item is FootItem) { FootItem foot = item as FootItem; FootItem old = _footSlot.ChangeItem(foot); return(old); } else if (item is BodyItem) { BodyItem body = item as BodyItem; BodyItem old = _bodySlot.ChangeItem(body); return(old); } else if (item is SwordItem) { SwordItem sword = item as SwordItem; return(_swordSlot.ChangeItem(sword)); } return(item); }
public void UnSet(int ItemID) { BodyItem Item = ItemManager.returnBodyItem(ItemID); Item.UnEquip(); DataManager.Save(); }
public static void Copy(BodyItem source, BodyItem destination) { Item.Copy(source, destination); destination.type = source.type; destination.load = source.load; destination.armor = source.armor; }
public static BodyItem GetInstance() { if (singleInstance == null) { singleInstance = new BodyItem(); } return(singleInstance); }
public override String ToString() { String s = "[Wearables] =>"; s += " Body Item: " + BodyItem.ToString() + ";"; s += " Skin Item: " + SkinItem.ToString() + ";"; s += " Shirt Item: " + ShirtItem.ToString() + ";"; s += " Pants Item: " + PantsItem.ToString() + ";"; return(s); }
public void Set(int itemid) { ItemId = itemid; if (itemid != 9999) { BodyItem Item = ItemManager.returnBodyItem(itemid); Item.Equip(); } DataManager.Save(); }
/// <summary> /// Add and convert generic secondary body section /// </summary> /// <param name="bookStructureManager"></param> /// <param name="bodyItem"></param> private void AddSecondaryBody(BookStructureManager bookStructureManager, BodyItem bodyItem) { string docTitle = string.Empty; if (string.IsNullOrEmpty(bodyItem.Name)) { if (bodyItem.Title != null) { docTitle = bodyItem.Title.ToString(); } } else { docTitle = bodyItem.Name; } Logger.Log.DebugFormat("Adding section : {0}", docTitle); var sectionDocument = new BaseXHTMLFileV2 { Id = docTitle, GuideRole = GuideTypeEnum.Text, Type = SectionTypeEnum.Text, FileEPubInternalPath = EPubInternalPath.GetDefaultLocation(DefaultLocations.DefaultTextFolder), Content = new Div(BaseXHTMLFileV2.Compatibility), NavigationParent = null, NotPartOfNavigation = false, FileName = string.Format("section{0}.xhtml", ++_sectionCounter) }; if (bodyItem.Title != null) { var converterSettings = new ConverterOptionsV2 { CapitalDrop = _commonSettings.CapitalDrop, Images = _images, MaxSize = _maxSize, ReferencesManager = _referencesManager, }; var titleConverter = new TitleConverterV2(); sectionDocument.Content.Add(titleConverter.Convert(bodyItem.Title, new TitleConverterParamsV2 { Settings = converterSettings, TitleLevel = 1 })); } bookStructureManager.AddBookPage(sectionDocument); Logger.Log.Debug("Adding sub-sections"); foreach (var section in bodyItem.Sections) { AddSection(bookStructureManager, section, sectionDocument, false); } }
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); } }
// this is used for OGS1 public virtual Hashtable ToHashTable() { Hashtable h = new Hashtable(); h["owner"] = Owner.ToString(); h["serial"] = Serial.ToString(); h["visual_params"] = VisualParams; h["texture"] = Texture.GetBytes(); h["avatar_height"] = AvatarHeight.ToString(); h["body_item"] = BodyItem.ToString(); h["body_asset"] = BodyAsset.ToString(); h["skin_item"] = SkinItem.ToString(); h["skin_asset"] = SkinAsset.ToString(); h["hair_item"] = HairItem.ToString(); h["hair_asset"] = HairAsset.ToString(); h["eyes_item"] = EyesItem.ToString(); h["eyes_asset"] = EyesAsset.ToString(); h["shirt_item"] = ShirtItem.ToString(); h["shirt_asset"] = ShirtAsset.ToString(); h["pants_item"] = PantsItem.ToString(); h["pants_asset"] = PantsAsset.ToString(); h["shoes_item"] = ShoesItem.ToString(); h["shoes_asset"] = ShoesAsset.ToString(); h["socks_item"] = SocksItem.ToString(); h["socks_asset"] = SocksAsset.ToString(); h["jacket_item"] = JacketItem.ToString(); h["jacket_asset"] = JacketAsset.ToString(); h["gloves_item"] = GlovesItem.ToString(); h["gloves_asset"] = GlovesAsset.ToString(); h["undershirt_item"] = UnderShirtItem.ToString(); h["undershirt_asset"] = UnderShirtAsset.ToString(); h["underpants_item"] = UnderPantsItem.ToString(); h["underpants_asset"] = UnderPantsAsset.ToString(); h["skirt_item"] = SkirtItem.ToString(); h["skirt_asset"] = SkirtAsset.ToString(); string attachments = GetAttachmentsString(); if (attachments != String.Empty) { h["attachments"] = attachments; } return(h); }
public GameObject GetPickable(BodyItem.Type type, bool showName = false, bool destroyOnPick = true) { BodyItem item = Get(type, false); 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.pickableBody; BodyItem.Copy(item, go.AddComponent <BodyItem>()); 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.horse.gameObject.SetActive(false); pickable.body.gameObject.SetActive(true); if (skin) { BodySlot.CopySkinnedMesh(skin, pickable.body); } else { pickable.body.gameObject.SetActive(false); } pickable.textmesh.gameObject.SetActive(showName); go.GetComponent <Item>().destroyOnPick = destroyOnPick; return(go); }
public static Attachment ToAttachment(this BodyItem bodyItem) { switch (bodyItem) { case MessageBodyItemWithLink messageItemWithLink: return(CreateAttachment(messageItemWithLink, ZoomAttachmentContentTypes.MessageWithLink)); case DropdownBodyItem dropdownItem: return(CreateAttachment(dropdownItem, ZoomAttachmentContentTypes.Dropdown)); case AttachmentBodyItem attachmentItem: return(CreateAttachment(attachmentItem, ZoomAttachmentContentTypes.Attachment)); case FieldsBodyItem fieldsItem: return(CreateAttachment(fieldsItem, ZoomAttachmentContentTypes.Fields)); default: return(null); } }
private List <FB2NotesPageSectionFile> AddV2StyleFbeNotesBody(BodyItem bodyItem) { List <FB2NotesPageSectionFile> documents = new List <FB2NotesPageSectionFile>(); string docTitle = bodyItem.Name; Logger.Log.DebugFormat("Adding notes section : {0}", docTitle); var sectionDocument = new FB2NotesPageSectionFile { PageTitle = docTitle, FileEPubInternalPath = EPubInternalPath.GetDefaultLocation(DefaultLocations.DefaultTextFolder), GuideRole = GuideTypeEnum.Glossary, Content = new Div(HTMLElementType.HTML5), NavigationParent = null, NotPartOfNavigation = true, FileName = BuildSectionFileName() }; if (bodyItem.Title != null) { var converterSettings = new ConverterOptionsV3 { CapitalDrop = false, Images = _images, MaxSize = _v3Settings.HTMLFileMaxSize, ReferencesManager = _referencesManager, }; var titleConverter = new TitleConverterV3(); sectionDocument.Content.Add(titleConverter.Convert(bodyItem.Title, new TitleConverterParamsV3 { Settings = converterSettings, TitleLevel = 1 })); } documents.Add(sectionDocument); Logger.Log.Debug("Adding sub-sections"); foreach (var section in bodyItem.Sections) { documents.AddRange(AddSection(section, sectionDocument)); } return(documents); }
/// <summary> /// Add and convert FBE style generated notes sections /// </summary> /// <param name="epubFile"></param> /// <param name="bodyItem"></param> private void AddFbeNotesBody(EPubFileV2 epubFile, BodyItem bodyItem) { string docTitle = bodyItem.Name; Logger.Log.DebugFormat("Adding section : {0}", docTitle); var sectionDocument = new BaseXHTMLFileV2 { PageTitle = docTitle, FileEPubInternalPath = EPubInternalPath.GetDefaultLocation(DefaultLocations.DefaultTextFolder), GuideRole = GuideTypeEnum.Glossary, Type = SectionTypeEnum.Links, Content = new Div(BaseXHTMLFileV2.Compatibility), NavigationParent = null, NotPartOfNavigation = true, FileName = string.Format("section{0}.xhtml", ++_sectionCounter), }; if (bodyItem.Title != null) { var converterSettings = new ConverterOptionsV2 { CapitalDrop = false, Images = _images, MaxSize = _maxSize, ReferencesManager = _referencesManager, }; var titleConverter = new TitleConverterV2(); sectionDocument.Content.Add(titleConverter.Convert(bodyItem.Title, new TitleConverterParamsV2 { Settings = converterSettings, TitleLevel = 1 })); } epubFile.AddXHTMLFile(sectionDocument); Logger.Log.Debug("Adding sub-sections"); foreach (var section in bodyItem.Sections) { AddSection(epubFile, section, sectionDocument, true); } }
private void UpdatePlayerPanel(int id) { Player p = Game.Players[id]; for (int i = 0; i < p.Body.Items.Count; i++) { Panel panel = GetPanelByPlayerPosition(id, i); if (panel == null) { break; } BodyItem item = p.Body.Items[i]; panel.Children.Clear(); //TextBlock tb = new TextBlock() { Text = item.ToString() }; Image im = new Image() { Source = new BitmapImage(new Uri(GUITools.GetImageFromCard(item.Organ))), Height = 100, Width = 200 }; panel.Children.Add(im); for (int j = 0; j < item.Modifiers.Count; j++) { Card c = item.Modifiers[j]; Image imm = new Image() { Height = 50, Width = 75 }; imm.Source = new BitmapImage(new Uri(GUITools.GetImageFromCard(c))); panel.Children.Add(imm); } } }
public PlayerInventory() : base() { // init default inventory InventoryManager.Add(this); InventoryManager.CreateDefault <PlayerInventory>(); CurrentWeapon = WeaponItem.None(); CurrentHeadItem = HeadItem.None(); CurrentBodyItem = BodyItem.None(); CurrentLegsItem = LegsItem.None(); InventoryManager.AddToInventory <PlayerInventory>(WeaponItem.Longsword()); InventoryManager.AddToInventory <PlayerInventory>(HeadItem.IronHelmet()); InventoryManager.AddToInventory <PlayerInventory>(BodyItem.IronChestplate()); InventoryManager.AddToInventory <PlayerInventory>(LegsItem.IronLeggings()); InventoryManager.AddToInventory <PlayerInventory>(MiscItem.Quartz()); InventoryManager.AddToInventory <PlayerInventory>(MiscItem.Quartz()); InventoryManager.AddToInventory <PlayerInventory>(MiscItem.Quartz()); InventoryManager.AddToInventory <PlayerInventory>(MiscItem.Quartz()); InventoryManager.AddToInventory <PlayerInventory>(MiscItem.Quartz()); }
private void UpdatePlayerPanel(int id) { Player p = Game.Players[id]; Panel pItem; int i = 0; for (i = 0; i < p.Body.Items.Count; i++) { pItem = GetBodyItemPanel(id, i); pItem.Controls.Clear(); BodyItem item = p.Body.Items[i]; CCheckBox cb = FormUtilities.CreateButtonCheckBoxCard(item.Organ, 0.4, id, i, false); //cb.Click += CardClicked; cb.Click += CardClicked2; pItem.Controls.Add(cb); for (int j = 0; j < item.Modifiers.Count; j++) { cb = FormUtilities.CreateButtonCheckBoxCard(item.Modifiers[j], 0.25, id, i, false); //cb.Click += CardClicked; cb.Click += CardClicked2; pItem.Controls.Add(cb); } } while (i < Game.Settings.NumberToWin) { pItem = GetBodyItemPanel(id, i); pItem.Controls.Clear(); i++; } }
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); }
public static Tensor scan( Func <Tensor, Tensor, Tensor> fn, Tensor elems, Tensor initializer = null, int parallel_iterations = 10, bool back_prop = true, bool swap_memory = false, bool infer_shape = true, bool reverse = false, string name = null) { bool input_is_sequence = nest.is_sequence(elems); Tensor[] input_flatten(Tensor x) => input_is_sequence?nest.flatten(x).ToArray() : new[] { x }; Tensor input_pack(Tensor[] x) => input_is_sequence ? (Tensor)nest.pack_sequence_as(elems, x) : x[0]; bool output_is_sequence; Func <Tensor, Tensor[]> output_flatten; Func <Tensor[], Tensor> output_pack; if (initializer == null) { output_is_sequence = input_is_sequence; output_flatten = input_flatten; output_pack = input_pack; } else { output_is_sequence = nest.is_sequence(initializer); output_flatten = (x) => output_is_sequence?nest.flatten(x).ToArray() : new[] { x }; output_pack = (x) => output_is_sequence ? (Tensor)nest.pack_sequence_as(initializer, x) : x[0]; } var elems_flat = input_flatten(elems); bool in_graph_mode = tf.Context.executing_eagerly(); return(tf_with(ops.name_scope(name, "scan", new { elems_flat }), scope => { if (in_graph_mode) { // todo tf.net doesn't expose .caching_device //// Any get_variable calls in fn will cache the first call locally //// and not issue repeated network I/O requests for each iteration. //var varscope = variable_scope.get_variable_scope(); //bool varscope_caching_device_was_none = false; //if (varscope.caching_device = null) //{ // // varscope.set_caching_device(lambda op: op.device) // // varscope_caching_device_was_none = True //} } elems_flat = elems_flat.Select(elem => ops.convert_to_tensor(elem, name: "elem")).ToArray(); var n = tensor_shape.dimension_value(elems_flat[0].shape[0]); // todo python had the below but dimension_value returns int which can't be null //if (n == null) //{ // n = array_ops.shape(elems_flat[0])[0]; //} var elems_ta = elems_flat.Select(elem => new TensorArray( elem.dtype, size: tf.constant(n), dynamic_size: false, element_shape: elem.shape.Skip(1).ToArray(), infer_shape: true)).ToList(); for (int index = 0; index < elems_ta.Count; index++) { elems_ta[index].unstack(elems_flat[index]); } Tensor[] a_flat; int i; if (initializer == null) { a_flat = elems_ta.Select(elem => elem.read(tf.constant(reverse ? n - 1 : 0))).ToArray(); i = 1; } else { Tensor[] initializer_flat = output_flatten(initializer); a_flat = initializer_flat.Select(init => ops.convert_to_tensor(init)).ToArray(); i = 0; } var accs_ta = a_flat.Select(init => new TensorArray( dtype: init.dtype, size: tf.constant(n), element_shape: infer_shape ? init.shape : null, dynamic_size: false, infer_shape: infer_shape)).ToArray(); if (initializer == null) { for (int index = 0; index < accs_ta.Length; index++) { accs_ta[index].write(tf.constant(reverse ? n - 1 : 0), a_flat[index]); } } BodyItem compute(BodyItem item) { var packed_elems = input_pack(elems_ta.Select(elem_ta => elem_ta.read(item.I)).ToArray()); var packed_a = output_pack(item.A_Flat); var a_out = fn(packed_a, packed_elems); var flat_a_out = output_flatten(a_out); for (int j = 0; j < item.Accs_ta.Length; j++) { item.Accs_ta[j].write(item.I, flat_a_out[j]); } var next_i = reverse ? item.I - 1 : item.I + 1; return new BodyItem(next_i, flat_a_out, item.Accs_ta); } int initial_i; Func <BodyItem, Tensor> condition; if (reverse) { initial_i = n - 1 - i; condition = x => x.I >= 0; } else { initial_i = i; condition = x => x.I < n; } BodyItem bodyItem = control_flow_ops.while_loop( condition, compute, new BodyItem(tf.constant(initial_i), a_flat, accs_ta), parallel_iterations: parallel_iterations, back_prop: back_prop, swap_memory: swap_memory, maximum_iterations: tf.constant(n)); var results_flat = bodyItem.Accs_ta.Select(r => r.stack()).ToArray(); var n_static = new Dimension(tensor_shape.dimension_value(elems_flat[0].TensorShape.with_rank_at_least(1).dims[0])); foreach (var elem in elems_flat.Skip(1)) { n_static.merge_with(new Dimension(tensor_shape.dimension_value(elem.TensorShape.with_rank_at_least(1).dims[0]))); } foreach (Tensor r in results_flat) { r.set_shape(new TensorShape(n_static).concatenate(r.dims.Skip(1).ToArray())); } // todo get working when the above caching_device is fixed //if (in_graph_mode && varscope_caching_device_was_none) { // varscope.set_caching_device(None); //} return output_pack(results_flat); })); }
public float GetArmor(BodyItem alternative) { return(head.equipedItem.armor + alternative.armor + shield.equipedItem.armor + (horse ? horse.equipedItem.armor : 0)); }
// Get animation configuration regarding of the equipement public AnimationClip[] GetAnimationClip(ref WeaponItem weapon, ref SecondItem second, ref ShieldItem shield, ref BodyItem body, ref HeadItem head, ref BackpackItem backpack) { if (weapon.type != WeaponItem.Type.None && weapon.animationCode == 5) { return(spearConfiguration); } else if (second.type != SecondItem.Type.None && second.animationCode == 2) { return(archeryConfiguration); } else if (weapon.type != WeaponItem.Type.None && weapon.animationCode == 3) { return(crossbowConfiguration); } else if (shield.type != ShieldItem.Type.None) { return(shieldedConfiguration); } else if (weapon.type != WeaponItem.Type.None && weapon.animationCode == 4) { return(twoHandedConfiguration); } else if (weapon.type != WeaponItem.Type.None && second.animationCode == 6) { return(staffConfiguration); } else if (weapon.type != WeaponItem.Type.None && weapon.animationCode == 7) { return(polearmConfiguration); } else { return(defaultConfiguration); } }
public AnimationClip[] GetMountedAnimationClip(ref WeaponItem weapon, ref SecondItem second, ref ShieldItem shield, ref BodyItem body, ref HeadItem head, ref BackpackItem backpack) { if (weapon.type != WeaponItem.Type.None && weapon.animationCode == 5) { return(mountedSpearConfiguration); } else if (second.type != SecondItem.Type.None && second.animationCode == 2) { return(mountedArcheryConfiguration); } else if (weapon.type != WeaponItem.Type.None && weapon.animationCode == 3) { return(mountedCrossbowConfiguration); } else { return(mountedDefaultConfiguration); } }
/// <summary> /// Loads the file as data from XML data /// </summary> /// <param name="fileDocument">XML document containing the file</param> /// <param name="loadHeaderOnly">if true loads only header information</param> public void Load(XDocument fileDocument, bool loadHeaderOnly) { if (fileDocument == null) { throw new ArgumentNullException(nameof(fileDocument)); } if (fileDocument.Root == null) { throw new ArgumentException("Document's root is NULL (empty document passed)"); } // theoretically the namespace should be "http://www.gribuser.ru/xml/fictionbook/2.0" but just to be sure with invalid files _fileNameSpace = fileDocument.Root.GetDefaultNamespace(); _styles.Clear(); IEnumerable <XElement> xStyles = fileDocument.Root.Elements(_fileNameSpace + StyleElement.StyleElementName).ToArray(); // attempt to load some bad FB2 with wrong namespace if (!xStyles.Any()) { xStyles = fileDocument.Elements(StyleElement.StyleElementName); } foreach (var style in xStyles) { var element = new StyleElement(); try { element.Load(style); _styles.Add(element); } catch { // ignored } } LoadDescriptionSection(fileDocument); if (!loadHeaderOnly) { XNamespace namespaceUsed = _fileNameSpace; // Load body elements (first is main text) if (fileDocument.Root != null) { IEnumerable <XElement> xBodyElements = fileDocument.Root.Elements(_fileNameSpace + Fb2TextBodyElementName).ToArray(); // try to read some badly formatted FB2 files if (!xBodyElements.Any()) { namespaceUsed = ""; xBodyElements = fileDocument.Root.Elements(namespaceUsed + Fb2TextBodyElementName); } foreach (var body in xBodyElements) { var bodyItem = new BodyItem { NameSpace = namespaceUsed }; try { bodyItem.Load(body); } catch (Exception) { continue; } _bodiesList.Add(bodyItem); } } if (_bodiesList.Count > 0) { _mainBody = _bodiesList[0]; } // Load binaries sections (currently images only) if (fileDocument.Root != null) { IEnumerable <XElement> xBinaryElements = fileDocument.Root.Elements(namespaceUsed + Fb2BinaryElementName).ToArray(); if (!xBinaryElements.Any()) { xBinaryElements = fileDocument.Root.Elements(Fb2BinaryElementName); } foreach (var binaryElement in xBinaryElements) { var item = new BinaryItem(); try { item.Load(binaryElement); } catch { continue; } // add just unique IDs to fix some invalid FB2s if (!_binaryObjects.ContainsKey(item.Id)) { _binaryObjects.Add(item.Id, item); } } } } }
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 void OnIconClick(InventoryIcon icon) { Item item = GetItem(icon.item); if (!item) { return; } if (icon.item.itemType == Item.ItemType.Resource && interactionUI.resourceContainer != null) { ResourceItem resource = (ResourceItem)item; if (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1)) { string resourceName = resource.resource.name; int transfertCount = Input.GetMouseButtonUp(0) ? 1 : 10; transfertCount = Mathf.Min(transfertCount, inventory.inventory[icon.item]); transfertCount = interactionUI.resourceContainer.TryAddItem(resourceName, transfertCount); if (transfertCount > 0) { inventory.RemoveItem(icon.item, transfertCount, true); } else if (interactionUI.resourceContainer.Accept(resourceName)) { PlayerController.MainInstance.interactionController.ThrowHelp("Container", "full"); // no icon for storage } else { PlayerController.MainInstance.interactionController.ThrowHelp(resourceName, "nok"); } } } else { if (item.usable && Input.GetMouseButtonUp(0)) { Debug.Log("Use item " + icon.name); inventory.RemoveItem(icon.item, 1, true); PlayerController.MainInstance.RecomputeLoadFactor(); } else if (item.equipable && Input.GetMouseButtonUp(1)) { PlayerController player = PlayerController.MainInstance; if (IsEquipementIcon(icon)) // unequip { if (icon.item.itemType == Item.ItemType.Weapon) { if (player.weapon.equipedItem.type != WeaponItem.Type.None) { Item old = Arsenal.Instance.Get(player.weapon.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } if (ToolDictionary.instance.tools.ContainsKey(player.weapon.equipedItem.toolFamily)) { FinishedUnequip(player, GetRandom(ToolDictionary.instance.tools[player.weapon.equipedItem.toolFamily].collectionSound)); } player.weapon.Equip(WeaponItem.Type.None); } } else if (icon.item.itemType == Item.ItemType.Backpack) { if (player.backpack.equipedItem.type != BackpackItem.Type.None) { Item old = Arsenal.Instance.Get(player.backpack.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } if (ToolDictionary.instance.tools.ContainsKey(player.backpack.equipedItem.toolFamily)) { FinishedUnequip(player, GetRandom(ToolDictionary.instance.tools[player.backpack.equipedItem.toolFamily].collectionSound)); } player.backpack.Equip(BackpackItem.Type.None); player.inventory.capacity = player.backpack.equipedItem.capacity; } } else if (icon.item.itemType == Item.ItemType.Body) { if (!player.body.equipedItem.IsDefault()) { Item old = Arsenal.Instance.Get(player.body.equipedItem.type, false, false); if (old) { inventory.AddItem(old.Summarize(), 1); } FinishedUnequip(player, player.interactionController.wearBody[Mathf.Clamp((int)BodyItem.getCategory(player.body.equipedItem.type), 0, player.interactionController.wearBody.Count - 1)]); player.body.Equip(BodyItem.defaultType, player.horse ? player.horse.equipedItem.type != HorseItem.Type.None : false); } } else if (icon.item.itemType == Item.ItemType.Head) { if (!player.head.equipedItem.IsDefault()) { Item old = Arsenal.Instance.Get(player.head.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } FinishedUnequip(player, player.interactionController.wearHead[Mathf.Clamp((int)HeadItem.getCategory(player.head.equipedItem.type), 0, player.interactionController.wearHead.Count - 1)]); player.head.Equip(HeadItem.defaultType); } } else if (icon.item.itemType == Item.ItemType.Horse) { if (player.horse && player.horse.equipedItem.type != HorseItem.Type.None) { Item old = Arsenal.Instance.Get(player.horse.equipedItem.type, false); if (old) { GameObject dropped = InstanciatePickable(icon.item); dropped.transform.position = player.transform.position + Vector3.right; MapModifier.instance.grid.AddGameObject(dropped, ConstructionLayer.LayerType.Decoration, false, false); } player.interactionController.Unmount(); } } else if (icon.item.itemType == Item.ItemType.Second) { if (player.secondHand.equipedItem.type != SecondItem.Type.None) { Item old = Arsenal.Instance.Get(player.secondHand.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } FinishedUnequip(player, GetRandom(ToolDictionary.instance.tools["Hammer"].collectionSound)); player.secondHand.Equip(SecondItem.Type.None); } } else if (icon.item.itemType == Item.ItemType.Shield) { if (player.shield.equipedItem.type != ShieldItem.Type.None) { Item old = Arsenal.Instance.Get(player.shield.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } FinishedUnequip(player, player.interactionController.wearHead[Mathf.Clamp((int)HeadItem.Category.Medium, 0, player.interactionController.wearHead.Count - 1)]); player.shield.Equip(ShieldItem.Type.None); } } else { Debug.LogWarning("No equip methode for this type of object " + icon.item.itemType.ToString()); } } else // equip { if (icon.item.itemType == Item.ItemType.Weapon) { Item old = Arsenal.Instance.Get(player.weapon.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } player.interactionController.EquipInteraction(InteractionType.Type.pickableWeapon, item.gameObject); } else if (icon.item.itemType == Item.ItemType.Backpack) { Item old = Arsenal.Instance.Get(player.backpack.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } player.interactionController.EquipInteraction(InteractionType.Type.pickableBackpack, item.gameObject); } else if (icon.item.itemType == Item.ItemType.Body) { Item old = Arsenal.Instance.Get(player.body.equipedItem.type, false, false); if (old && !player.body.equipedItem.IsDefault()) { inventory.AddItem(old.Summarize(), 1); } player.interactionController.EquipInteraction(InteractionType.Type.pickableBody, item.gameObject); } else if (icon.item.itemType == Item.ItemType.Head) { Item old = Arsenal.Instance.Get(player.head.equipedItem.type, false); if (old && !player.head.equipedItem.IsDefault()) { inventory.AddItem(old.Summarize(), 1); } player.interactionController.EquipInteraction(InteractionType.Type.pickableHead, item.gameObject); } else if (icon.item.itemType == Item.ItemType.Horse) { Item old = Arsenal.Instance.Get(player.horse.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } player.interactionController.EquipInteraction(InteractionType.Type.pickableHorse, item.gameObject); } else if (icon.item.itemType == Item.ItemType.Second) { Item old = Arsenal.Instance.Get(player.secondHand.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } player.interactionController.EquipInteraction(InteractionType.Type.pickableSecond, item.gameObject); } else if (icon.item.itemType == Item.ItemType.Shield) { Item old = Arsenal.Instance.Get(player.shield.equipedItem.type, false); if (old) { inventory.AddItem(old.Summarize(), 1); } player.interactionController.EquipInteraction(InteractionType.Type.pickableShield, item.gameObject); } else { Debug.LogWarning("No equip methode for this type of object " + icon.item.itemType.ToString()); } inventory.RemoveItem(icon.item, 1, true); } player.RecomputeLoadFactor(); } } }
void Init() { BackgroundColor = Constants.BackgroundColor; Lbl_Username.TextColor = Constants.MainTextColor; Lbl_Password.TextColor = Constants.MainTextColor; ActivitySpinner.IsVisible = false; LoginIcon.HeightRequest = Constants.LoginIconHeight; Entry_Username.Completed += (sender, e) => Entry_Password.Focus(); Entry_Password.Completed += (sender, e) => SignInProcedure(sender, e); Constants.towns = new ObservableCollection <TownModel>(); Constants.Hero = new Models.Character() { hp = 40, mp = 10, inventory = new Models.Inventory(), name = "Szymon" }; Constants.Hero.updateStats(); Constants.levelRate.Add(1, 50); Constants.levelRate.Add(2, 75); Constants.levelRate.Add(3, 125); Constants.levelRate.Add(4, 200); Constants.levelRate.Add(5, 300); Constants.levelRate.Add(6, 430); Constants.levelRate.Add(7, 580); Constants.levelRate.Add(8, 700); Constants.levelRate.Add(9, 1000); Constants.levelRate.Add(10, 1350); Constants.levelRate.Add(11, 1900); Constants.levelRate.Add(12, 2600); Constants.levelRate.Add(13, 3500); Constants.levelRate.Add(14, 4500); Constants.levelRate.Add(15, 6000); Constants.levelRate.Add(16, 7800); Constants.levelRate.Add(17, 9800); Constants.levelRate.Add(18, 12500); Constants.levelRate.Add(19, 14000); Constants.levelRate.Add(20, 18000); Constants.levelRate.Add(21, 25000); Constants.levelRate.Add(22, 35000); Constants.levelRate.Add(23, 50000); Constants.levelRate.Add(24, 67000); Constants.levelRate.Add(25, 83500); /*Constants.levelRate.Add(26, 50); * */ //Przedmioty Startowe dopóki nie ma dwóch miast jest to na sztywno ConsumableItem item1 = new ConsumableItem() { name = "Mikstura Życia", type = 0, hpRestore = 500, price = 50, image = "elixir.png", isConsuamble = true }; OneHandItem oneHand1 = new OneHandItem() { atk = 3, type = 1, name = "Sztylet", price = 200, image = "dagger.png", IsEquable = true }; ShieldItem ShieldItem1 = new ShieldItem() { def = 3, type = 2, name = "Prosta Tarcza", price = 200, image = "shield.png", IsEquable = true }; HelmetItem helmet1 = new HelmetItem() { mdef = 2, type = 3, name = "Prosty Hełm", price = 200, image = "viking.png", IsEquable = true }; BodyItem body1 = new BodyItem() { def = 3, mdef = 1, type = 4, name = "Łachmany", price = 500, image = "armor.png", IsEquable = true }; BootItem boot1 = new BootItem() { luck = 3, type = 5, name = "Buty", price = 200, image = "boots.png", IsEquable = true }; RingItem ring1 = new RingItem() { hp = 30, type = 6, name = "Pierscień Życia", price = 200, image = "shenRing.png", IsEquable = true }; // TwoHandItem twohand = new TwoHandItem() { atk = 3, type=7, name = "Sztylet", price = 200, image = "swords.png", IsEquable = true }; ObservableCollection <Models.Item> items = new ObservableCollection <Item>(); items.Add(item1); items.Add(oneHand1); items.Add(ShieldItem1); items.Add(helmet1); items.Add(body1); items.Add(boot1); items.Add(ring1); //Twohand! //Skille Constants.allSkills = new List <Skill>(); AttackSkill wolfBite = new AttackSkill() { name = "Ugryzienie", manaCost = 2, skillStr = 5 }; Quest firstQuest = new Quest() { exp = 30, done = 0, desc = "Tutaj znajduje się opis pierwszego questa", gold = 50, itemReward = null, name = "Pierwszy Quest", reqDone = 3, reward = "armor.png" }; ObservableCollection <Quest> firstTown = new ObservableCollection <Quest>(); firstTown.Add(firstQuest); //enemies Enemy enemy = new Enemy() { name = "Osa", rarity = "Common", image = "bee.png", def = 4, exp = 10, gold = 10, hp = 40, id = 0, items = new List <Item>(), loot = new List <Item>(), mag = 3, str = 8, luck = 5, lvl = 1, mp = 12, spr = 3, speed = 9, maxHP = 40, maxMP = 12 }; Enemy wolf = new Enemy() { name = "Wilk", rarity = "Common", image = "wolf.png", def = 6, freqAi = 69, isAi = true, exp = 12, gold = 9, hp = 60, id = 1, items = new List <Item>(), loot = new List <Item>(), mag = 1, str = 14, luck = 4, lvl = 1, mp = 16, spr = 6, skills = new List <Skill>(), speed = 12, maxHP = 60, maxMP = 16 }; wolf.skills.Add(wolfBite); TownModel town = new TownModel() { image = "village.jpg", noTown = 0, Name = "Deling", Quests = firstTown, Shop = items, isUnlocked = true }; Constants.towns.Add(town); Constants.actualTown = 0; Constants.Hero.inventory.items = new ObservableCollection <Item>(); Constants.allItems = new Dictionary <string, Item>(); Constants.allItems.Add(item1.name, item1); Constants.allItems.Add(oneHand1.name, oneHand1); Constants.allItems.Add(ShieldItem1.name, ShieldItem1); Constants.allItems.Add(helmet1.name, helmet1); Constants.allItems.Add(body1.name, body1); Constants.allItems.Add(boot1.name, boot1); Constants.allItems.Add(ring1.name, ring1); enemy.addLoot(new List <Item>() { item1 }); Constants.allEnemies = new List <Enemy>(); Constants.allEnemies.Add(enemy); Constants.allEnemies.Add(wolf); }
private bool Equip(InteractionType.Type type, GameObject interactor) { bool success = false; if (type == InteractionType.Type.pickableWeapon) { WeaponItem item = interactor.GetComponent <WeaponItem>(); if (item && weapon.Equip(item.type)) { if (item.forbidSecond || secondHand.equipedItem.forbidWeapon) { secondHand.Equip(SecondItem.Type.None); } if (item.forbidShield) { shield.Equip(ShieldItem.Type.None); } success = true; } } else if (type == InteractionType.Type.pickableBackpack) { BackpackItem item = interactor.GetComponent <BackpackItem>(); if (item && backpack.Equip(item.type)) { success = true; } } else if (type == InteractionType.Type.pickableHead) { HeadItem item = interactor.GetComponent <HeadItem>(); if (item && head.Equip(item.type)) { success = true; } } else if (type == InteractionType.Type.pickableSecond) { SecondItem item = interactor.GetComponent <SecondItem>(); if (item && secondHand.Equip(item.type)) { if (item.forbidWeapon || weapon.equipedItem.forbidSecond) { weapon.Equip(WeaponItem.Type.None); } if (item.forbidShield) { shield.Equip(ShieldItem.Type.None); } success = true; } } else if (type == InteractionType.Type.pickableShield) { ShieldItem item = interactor.GetComponent <ShieldItem>(); if (item && shield.Equip(item.type)) { if (weapon.equipedItem.forbidShield) { weapon.Equip(WeaponItem.Type.None); } if (secondHand.equipedItem.forbidShield) { secondHand.Equip(SecondItem.Type.None); } success = true; } } else if (type == InteractionType.Type.pickableBody) { bool mounted = horse ? horse.equipedItem.type != HorseItem.Type.None : false; BodyItem item = interactor.GetComponent <BodyItem>(); if (item && body.Equip(item.type, mounted)) { success = true; } } else { Debug.LogWarning("no interaction defined for this type " + type.ToString()); return(false); } return(success); }