Example #1
0
 public JsonResult RemoveEquipmentPart(int equipmentPartId)
 {
     try
     {
         EquipmentPart e = db.EquipmentParts.Find(equipmentPartId);
         if (e != null)
         {
             if (e.InstallationEquipmentParts.Count == 0)
             {
                 db.EquipmentParts.Remove(e);
                 db.SaveChanges();
             }
             else
             {
                 e.ValidTo = DateTime.Today;
                 db.SaveChanges();
             }
             return(Json(new { result = true }, JsonRequestBehavior.AllowGet));
         }
     }
     catch (Exception)
     {
     }
     return(Json(new { result = false }, JsonRequestBehavior.AllowGet));
 }
Example #2
0
        public EquipmentPartViewModel(EquipmentPart e)
        {
            this.Id = e.Id;
            this.EquipmentCompositeId = e.EquipmentModuleId;
            this.ItemId           = e.PartId;
            this.QuantityRequired = e.QuantityRequired;
            this.UnitOfMeasure    = e.UnitOfMeasure;
            this.Notes            = e.Notes;
            this.ValidFrom        = e.ValidFrom;
            this.ValidTo          = e.ValidTo;
            this.IsValidToday     = e.IsValidToday;

            if (e.Part != null)
            {
                this.ItemName         = e.Part.Name;
                this.ItemDescription  = e.Part.Description;
                this.ItemsPerUnit     = e.Part.ItemsPerUnit;
                this.ItemLink         = e.Part.Link;
                this.ItemObsolete     = e.Part.Obsolete;
                this.PartCategory     = e.Part.PartCategory;
                this.PartManufacturer = e.Part.Manufacturer;
                this.ItemSupplier     = e.Part.Supplier;
                this.ItemPartNumbers  = e.Part.PartNumbers;
            }
        }
Example #3
0
    void ChangeSelfOrientation()
    {
        if (unit_blueprint.menu_open)
        {
            return;
        }
        if (Input.GetKeyDown(KeyCode.C) && be_picked && !symmetry)
        {
            //transform.Rotate(Vector3.forward, 90);

            transform.localRotation *= Quaternion.Euler(0, 0, 90);
            return;
        }
        if (Input.GetKeyDown(KeyCode.C) && be_picked && symmetry)
        {
            EquipmentPart temp_E_part = (Instantiate(Resources.Load <GameObject>("Part/EquipmentPart/" + brother_part_name))).GetComponent <EquipmentPart>();
            temp_E_part.enabled = true;
            temp_E_part.Init();//手动初始化,因为Start执行顺序有问题
            temp_E_part.CreatFromButton();
            temp_E_part.be_creat_from_button = true;

            mandatory_delete = true;
            DeleteSelf();
        }
    }
        public JsonResult AddEquipmentPart(int installationId, int equipmentPartId)
        {
            try
            {
                Installation  i = db.Installations.Find(installationId);
                EquipmentPart p = db.EquipmentParts.Find(equipmentPartId);
                InstallationEquipmentModule iem = i.InstallationEquipmentModules.SingleOrDefault(x => x.EquipmentModuleId == p.EquipmentModuleId);
                if (i != null && p != null && iem != null && i.EquipmentId == p.EquipmentModule.EquipmentId)
                {
                    InstallationEquipmentPart iep = new InstallationEquipmentPart()
                    {
                        InstallationEquipmentModule = iem,
                        EquipmentPart = p
                    };

                    db.InstallationEquipmentParts.Add(iep);
                    db.SaveChanges();

                    return(Json(new { result = true }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception)
            {
            }
            return(Json(new { result = false }, JsonRequestBehavior.AllowGet));
        }
 public ActionResult DeleteConfirmed(int id)
 {
     EquipmentPart equipmentPart = db.EquipmentParts.Find(id);
     db.EquipmentParts.Remove(equipmentPart);
     db.SaveChanges();
     return RedirectToAction("Index");
 }
Example #6
0
        public string GetPartString(EquipmentPart part)
        {
            switch (part)
            {
            case EquipmentPart.None:
                return("");

            case EquipmentPart.Weapon:
                return("무기");

            case EquipmentPart.Helmet:
                return("모자");

            case EquipmentPart.Armor:
                return("상의");

            case EquipmentPart.Trouser:
                return("하의");

            case EquipmentPart.Shoes:
                return("신발");

            case EquipmentPart.Necklace:
                return("목걸이");

            case EquipmentPart.Ring:
                return("반지");

            case EquipmentPart.Emblem:
                return("엠블렘");

            default:
                return("");
            }
        }
Example #7
0
    /// <summary>
    /// Gets the mesh data from prefab.
    /// </summary>
    /// <returns>The mesh.</returns>
    /// <param name="setName">Set name.</param>
    /// <param name="part">Part.</param>
    Mesh GetMesh(string setName, EquipmentPart part)
    {
        Mesh tempMesh = new Mesh();

        armorSetModel = Resources.Load <GameObject>(setName).transform;
        tempMesh      = armorSetModel.FindChild(part.ToString()).GetComponent <SkinnedMeshRenderer>().sharedMesh;
        return(tempMesh);
    }
Example #8
0
    //// Use this for initialization
    //protected override void Start ()
    //{
    //    base.Start ();
    //    itemGeo = new Mesh();
    //}

    //// Update is called once per frame
    //protected override void Update ()
    //{

    //}

    #endregion

    #region Public Methods

    public EquipmentItem(Mesh mesh, EquipmentPart part, int id, string name, string description, Sprite icon, int price, BaseItemType type, bool isStack, int weight)
        : base(id, name, description, icon, price, type, isStack, weight)
    {
        itemGeo = mesh;
        //  model = _model;
        equipmentPart    = part;
        statsRequirement = new Dictionary <string, int>();
    }
Example #9
0
    public void GetEquipment(EquipmentPart part, out EquipmentItem equipment)
    {
        var id = equippingItems[(int)part];

        equipment = null;
        if (EMPTY == id)
        {
            return;
        }
        equipment = EquipmentInventry.Instance.ItemDict[id];
    }
 public ActionResult Edit([Bind(Include = "Id,EquipmentModuleId,PartId,QuantityRequired,UnitOfMeasure,Notes,ValidFrom,ValidTo")] EquipmentPart equipmentPart)
 {
     if (ModelState.IsValid)
     {
         db.Entry(equipmentPart).State = EntityState.Modified;
         db.SaveChanges();
         return RedirectToAction("Index");
     }
     ViewBag.EquipmentModuleId = equipmentPart.EquipmentModule.Equipment.ModuleList(equipmentPart.EquipmentModuleId);
     return View(equipmentPart);
 }
 // GET: EquipmentParts/Delete/5
 public ActionResult Delete(int? id)
 {
     if (id == null)
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     EquipmentPart equipmentPart = db.EquipmentParts.Find(id);
     if (equipmentPart == null)
     {
         return HttpNotFound();
     }
     return View(equipmentPart);
 }
Example #12
0
 public bool IsEquipping(int equipmentId, out EquipmentPart equippingPart)
 {
     for (int i = 0; i < equippingItems.Length; ++i)
     {
         if (equippingItems[i] == equipmentId)
         {
             equippingPart = (EquipmentPart)i;
             return(true);
         }
     }
     equippingPart = (EquipmentPart)(-1);
     return(false);
 }
        public ActionResult Create([Bind(Include = "Id,EquipmentModuleId,PartId,QuantityRequired,UnitOfMeasure,Notes,ValidFrom,ValidTo")] EquipmentPart equipmentPart)
        {
            if (ModelState.IsValid)
            {
                db.EquipmentParts.Add(equipmentPart);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.EquipmentModuleId = new SelectList(db.EquipmentModules, "Id", "Name", equipmentPart.EquipmentModuleId);
            ViewBag.PartId = new SelectList(db.Parts, "Id", "Name", equipmentPart.PartId);
            return View(equipmentPart);
        }
 // GET: EquipmentParts/Edit/5
 public ActionResult Edit(int? id)
 {
     if (id == null)
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     EquipmentPart equipmentPart = db.EquipmentParts.Find(id);
     if (equipmentPart == null)
     {
         return HttpNotFound();
     }
     ViewBag.EquipmentModuleId = equipmentPart.EquipmentModule.Equipment.ModuleList(equipmentPart.EquipmentModuleId);
     return View(equipmentPart);
 }
Example #15
0
        public JsonResult AddEquipmentPart(int equipmentId, int moduleId, int partId, double quantityRequired, string unitOfMeasure, string notes)
        {
            try
            {
                Equipment e = db.Equipments.Find(equipmentId);
                if (e != null)
                {
                    EquipmentModule em = db.EquipmentModules.SingleOrDefault(x => x.Id == moduleId);
                    if (em != null)
                    {
                        EquipmentPart ep = new EquipmentPart()
                        {
                            EquipmentModuleId = moduleId,
                            PartId            = partId,
                            QuantityRequired  = quantityRequired,
                            UnitOfMeasure     = unitOfMeasure,
                            Notes             = notes,
                            ValidFrom         = DateTime.Today
                        };

                        em.EquipmentParts.Add(ep);
                        db.SaveChanges();

                        ep = db.EquipmentParts
                             .Include(x => x.Part)
                             .Include(x => x.Part.Manufacturer)
                             .Include(x => x.Part.Supplier)
                             .Single(x => x.Id == ep.Id);

                        return(Json(new
                        {
                            id = ep.Id,
                            itemId = ep.PartId,
                            name = ep.Part.Name,
                            manufacturer = ep.Part.ManufacturerName,
                            supplier = ep.Part.SupplierName,
                            quantityRequired = ep.QuantityRequired,
                            unitOfMeasure = ep.UnitOfMeasure,
                            notes = ep.Notes
                        }, JsonRequestBehavior.AllowGet));
                    }
                }
            }
            catch (Exception)
            {
            }
            return(Json(new { result = false }, JsonRequestBehavior.AllowGet));
        }
Example #16
0
    public void CheckLegal()
    {
        //Debug.LogError("111111111111111111all_power_parts.Count =  " + all_power_parts.Count);
        //这个函数每帧检测零件的合法性变化情况及时更改各个列表中储存的零件

        //清空缓存列表:
        if (remove_those_from_all_legal_parts.Count != 0)
        {
            remove_those_from_all_legal_parts.Clear();
        }

        foreach (var p in all_parts)
        {
            if (p.legal)
            {
                //如果检测零件合法但是合法零件列表中没有这个零件,就添加
                if (!all_legal_parts.Contains(p))
                {
                    all_legal_parts.Add(p);

                    //然后再向分类的合法零件列表中添加
                    if (p.part_type == PartType.PowerPart && !all_power_parts.Contains(p))
                    {
                        Debug.LogError("这里添加" + all_power_parts.Count);
                        //如果是动力组件并且分类列表中没有这个组件才添加
                        PowerPart temp = p.GetComponent <PowerPart>();
                        button_controller.BanPowerPartButton();
                        all_power_parts.Add(temp);
                        have_power_part = true;
                        Debug.LogError("这里添加" + all_power_parts.Count);
                    }
                    else if (p.part_type == PartType.LegPart && !all_leg_parts.Contains(p))
                    {
                        LegPart temp = p.GetComponent <LegPart>();
                        all_leg_parts.Add(temp);
                        //执行移动组件检测重新确定左右是否都有合法的移动组件
                        CheckMovementSide();
                    }
                    else if (p.part_type == PartType.ControlPart && !all_ctrl_parts.Contains(p))
                    {
                        ControlPart temp = p.GetComponent <ControlPart>();
                        all_ctrl_parts.Add(temp);
                    }
                    else if (p.part_type == PartType.Equipment && !all_equip_parts.Contains(p))
                    {
                        EquipmentPart temp = p.GetComponent <EquipmentPart>();
                        all_equip_parts.Add(temp);
                    }
                }
            }
            else
            {
                //如果检测零件不合法,先添加到移除的缓存列表中
                //一个零件由合法转为不合法的时,此时 all_legal_parts 里存在这个零件,但 p.legal = false;
                if (all_legal_parts.Contains(p) && !p.legal)
                {
                    remove_those_from_all_legal_parts.Add(p);
                    //Debug.LogError("零件已经进入移除缓存区");

                    //再处理其他合法零件列表
                    if (p.part_type == PartType.PowerPart && all_power_parts.Contains(p))
                    {
                        PowerPart temp = p.GetComponent <PowerPart>();
                        button_controller.ReleasePowerPartButton();
                        all_power_parts.Remove(temp);
                        have_power_part = false;
                        //Debug.LogError(all_power_parts.Contains(p));
                        //Debug.LogError("这里" + all_power_parts.Count);
                    }
                    else if (p.part_type == PartType.LegPart && all_leg_parts.Contains(p))
                    {
                        LegPart temp = p.GetComponent <LegPart>();
                        all_leg_parts.Remove(temp);
                        //执行移动组件检测重新确定左右是否都有合法的移动组件
                        CheckMovementSide();
                    }
                    else if (p.part_type == PartType.ControlPart && all_ctrl_parts.Contains(p))
                    {
                        ControlPart temp = p.GetComponent <ControlPart>();
                        all_ctrl_parts.Remove(temp);
                    }
                    else if (p.part_type == PartType.Equipment && all_equip_parts.Contains(p))
                    {
                        EquipmentPart temp = p.GetComponent <EquipmentPart>();
                        all_equip_parts.Remove(temp);
                    }
                }
            }
        }
        //Debug.LogError("all_legal_parts = " + all_legal_parts.Count);
        foreach (var p in remove_those_from_all_legal_parts)
        {
            all_legal_parts.Remove(p);
            Debug.LogError(p.name + "零件已从合法零件列表中移除");
        }
    }
Example #17
0
 /// <summary>
 /// Remove equipment partially.
 /// </summary>
 public override void UnEquip(EquipmentPart part)
 {
     Equip(null, part);
 }
Example #18
0
 public override void Equip(SpriteGroupEntry item, EquipmentPart part)
 {
     Equip(item, part, null);
 }
Example #19
0
        /// <summary>
        /// Equip something from SpriteCollection.
        /// </summary>
        public override void Equip(SpriteGroupEntry item, EquipmentPart part, Color?color)
        {
            switch (part)
            {
            case EquipmentPart.MeleeWeapon1H:
            case EquipmentPart.MeleeWeapon2H:
            case EquipmentPart.MeleeWeaponPaired:
            case EquipmentPart.Bow:
                Firearms = null;
                FirearmsRenderers.ForEach(i => i.sprite = null);
                break;

            case EquipmentPart.Firearm1H:
            case EquipmentPart.Firearm2H:
                PrimaryMeleeWeapon = SecondaryMeleeWeapon = null;
                PrimaryMeleeWeaponRenderer.sprite = SecondaryMeleeWeaponRenderer.sprite = null;
                break;
            }

            switch (part)
            {
            case EquipmentPart.Helmet:
                Helmet = item?.Sprite;
                HelmetRenderer.color = color ?? HelmetRenderer.color;
                break;

            case EquipmentPart.Armor:
                Armor = item?.Sprites.ToList();
                ArmorRenderers.ForEach(i => i.color = color ?? i.color);
                break;

            case EquipmentPart.Pauldrons:
            case EquipmentPart.Vest:
            case EquipmentPart.Gloves:
            case EquipmentPart.Belt:
            case EquipmentPart.Boots:
                foreach (var p in GetEquipmentSubPartNames(part))
                {
                    SetArmorParts(p, item?.Sprites);
                }
                break;

            case EquipmentPart.MeleeWeapon1H:
                PrimaryMeleeWeapon = item?.Sprite;
                PrimaryMeleeWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryMeleeWeaponRenderer.color : Color.white);
                if (WeaponType != WeaponType.MeleePaired)
                {
                    WeaponType = WeaponType.Melee1H;
                }
                break;

            case EquipmentPart.MeleeWeapon2H:
                PrimaryMeleeWeapon = item?.Sprite;
                PrimaryMeleeWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryMeleeWeaponRenderer.color : Color.white);
                WeaponType = WeaponType.Melee2H;
                break;

            case EquipmentPart.MeleeWeaponPaired:
                if (WeaponType == WeaponType.Melee2H)
                {
                    PrimaryMeleeWeapon = null;
                }
                SecondaryMeleeWeapon = item?.Sprite;
                WeaponType           = WeaponType.MeleePaired;
                break;

            case EquipmentPart.Bow:
                Bow        = item?.Sprites.ToList();
                WeaponType = WeaponType.Bow;
                break;

            case EquipmentPart.Firearm1H:
                Firearms   = item?.Sprites.ToList();
                WeaponType = WeaponType.Firearms1H;
                break;

            case EquipmentPart.Firearm2H:
                Firearms   = item?.Sprites.ToList();
                WeaponType = WeaponType.Firearms2H;
                break;

            case EquipmentPart.Shield:
                Shield     = item?.Sprite;
                WeaponType = WeaponType.Melee1H;
                break;

            case EquipmentPart.Cape:
                Cape = item?.Sprite;
                CapeRenderer.color = color ?? CapeRenderer.color;
                break;

            case EquipmentPart.Back:
                Back = item?.Sprite;
                BackRenderer.color = color ?? BackRenderer.color;
                WeaponType         = WeaponType.Melee1H;
                break;

            case EquipmentPart.Earrings:
                Earrings = item?.Sprite;
                EarringsRenderer.color = color ?? EarringsRenderer.color;
                break;

            case EquipmentPart.Glasses:
                Glasses = item?.Sprite;
                GlassesRenderer.color = color ?? GlassesRenderer.color;
                break;

            case EquipmentPart.Mask:
                Mask = item?.Sprite;
                MaskRenderer.color = color ?? MaskRenderer.color;
                break;

            default: throw new NotImplementedException($"Unsupported part: {part}.");
            }

            Initialize();
        }
Example #20
0
        /// <summary>
        /// Equip something from SpriteCollection.
        /// </summary>
        public override void Equip(SpriteGroupEntry item, EquipmentPart part, Color?color)
        {
            switch (part)
            {
            case EquipmentPart.MeleeWeapon1H:
                CompositeWeapon = null;
                break;

            case EquipmentPart.MeleeWeapon2H:
                CompositeWeapon = null;
                Shield          = null;
                break;

            case EquipmentPart.Bow:
                PrimaryWeapon = SecondaryWeapon = null;
                Shield        = null;
                break;

            case EquipmentPart.Crossbow:
                PrimaryWeapon = SecondaryWeapon = null;
                Shield        = null;
                break;

            case EquipmentPart.SecondaryFirearm1H:
                CompositeWeapon = null;
                Shield          = null;
                break;
            }

            switch (part)
            {
            case EquipmentPart.Helmet:
                HideEars             = item != null && !item.Tags.Contains("ShowEars");
                CropHair             = item != null && !item.Tags.Contains("FullHair");
                Helmet               = HelmetRenderer.GetComponent <SpriteMapping>().FindSprite(item?.Sprites);
                HelmetRenderer.color = color ?? HelmetRenderer.color;
                break;

            case EquipmentPart.Armor:
                Armor = item?.Sprites.ToList();
                ArmorRenderers.ForEach(i => i.color = color ?? i.color);
                break;

            case EquipmentPart.Vest:
                SetArmorParts(VestRenderers, item?.Sprites, color);
                break;

            case EquipmentPart.Bracers:
                SetArmorParts(BracersRenderers, item?.Sprites, color);
                break;

            case EquipmentPart.Leggings:
                SetArmorParts(LeggingsRenderers, item?.Sprites, color);
                break;

            case EquipmentPart.MeleeWeapon1H:
                PrimaryWeapon = item?.Sprite;
                PrimaryWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryWeaponRenderer.color : Color.white);
                if (WeaponType != WeaponType.Paired)
                {
                    WeaponType = WeaponType.Melee1H;
                }
                break;

            case EquipmentPart.MeleeWeapon2H:
                PrimaryWeapon = item?.Sprite;
                PrimaryWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryWeaponRenderer.color : Color.white);
                WeaponType = WeaponType.Melee2H;
                break;

            case EquipmentPart.Bow:
                CompositeWeapon = item?.Sprites.ToList();
                WeaponType      = WeaponType.Bow;
                break;

            case EquipmentPart.Crossbow:
                CompositeWeapon = item?.Sprites.ToList();
                WeaponType      = WeaponType.Crossbow;
                break;

            case EquipmentPart.SecondaryFirearm1H:
                SecondaryWeapon = SecondaryWeaponRenderer.GetComponent <SpriteMapping>().FindSprite(item?.Sprites);
                WeaponType      = WeaponType.Paired;
                break;

            case EquipmentPart.Shield:
                Shield     = item?.Sprites.ToList();
                WeaponType = WeaponType.Melee1H;
                break;

            case EquipmentPart.Cape:
                Cape = item?.Sprite;
                CapeRenderer.color = color ?? CapeRenderer.color;
                break;

            case EquipmentPart.Back:
                Back = item?.Sprite;
                BackRenderer.color = color ?? BackRenderer.color;
                WeaponType         = WeaponType.Melee1H;
                break;

            case EquipmentPart.Earrings:
                Earrings = item?.Sprites.ToList();
                EarringsRenderers[0].color = EarringsRenderers[1].color = color ?? EarringsRenderers[0].color;
                break;

            case EquipmentPart.Mask:
                Mask = MaskRenderer.GetComponent <SpriteMapping>().FindSprite(item?.Sprites);
                MaskRenderer.color = color ?? MaskRenderer.color;
                break;

            default: throw new NotImplementedException($"Unsupported part: {part}.");
            }

            Initialize();
        }
Example #21
0
 public string GetEquippingItemName(EquipmentPart part)
 {
     GetEquipment(part, out var equipment);
     return(equipment?.GetName());
 }
Example #22
0
    public void ClickPartButton(PartButton click_this_button)
    {
        //计算零件出生位置:
        ////Vector3 start_pos = SetPosWhenPartCreat();

        switch ((int)click_this_button.part_type)
        {
        case 0:

            if (unit_blueprint.have_power_part)
            {
                Debug.LogError("设计平台上已经存在一个动力组件!");
                self_AS.clip = all_ACs["Error"];
                self_AS.Play();
                return;
            }

            part_prefab = Instantiate(Resources.Load <GameObject>("Part/PowerPart/" + click_this_button.part_name));
            PowerPart temp_power_part = part_prefab.GetComponent <PowerPart>();
            temp_power_part.enabled = true;
            temp_power_part.Init();    //手动初始化,因为Start执行顺序有问题
            temp_power_part.CreatFromButton();
            temp_power_part.be_creat_from_button = true;
            break;

        case 1:

            GameObject temp_go = Resources.Load <GameObject>("Part/MovementPart/LegPart/" + click_this_button.part_name);
            part_prefab = Instantiate(temp_go);
            //part_prefab.transform.position = start_pos;
            LegPart temp_leg_part = part_prefab.GetComponent <LegPart>();
            temp_leg_part.enabled = true;
            temp_leg_part.Init();    //手动初始化,因为Start执行顺序有问题
            temp_leg_part.CreatFromButton();
            temp_leg_part.be_creat_from_button = true;
            break;

        case 2:
            if (unit_blueprint.have_ctrl_part)
            {
                Debug.Log("注意:设计平台上已经存在一个控制组件!");
                //break;
            }

            part_prefab = Instantiate(Resources.Load <GameObject>("Part/ControlPart/" + click_this_button.part_name));
            ControlPart temp_control_part = part_prefab.GetComponent <ControlPart>();
            temp_control_part.enabled = true;
            temp_control_part.Init();    //手动初始化,因为Start执行顺序有问题
            temp_control_part.CreatFromButton();
            temp_control_part.be_creat_from_button = true;
            break;

        case 3:
            part_prefab = Instantiate(Resources.Load <GameObject>("Part/EquipmentPart/" + click_this_button.part_name));
            EquipmentPart temp_equip_part = part_prefab.GetComponent <EquipmentPart>();
            temp_equip_part.enabled = true;
            temp_equip_part.Init();    //手动初始化,因为Start执行顺序有问题
            temp_equip_part.CreatFromButton();
            temp_equip_part.be_creat_from_button = true;
            break;
        }

        //播放创建零件的音效:
        creat_part_audio.Play();
        //关闭悬停高亮Ui:
        click_this_button.hover_image.enabled = false;

        foreach (var lb in all_layer_button)
        {
            lb.self_image.sprite = lb.sp[0];
            lb.pressed           = false;
        }

        ToolClosePartInterface();
        unit_blueprint.menu_open = false;
    }
Example #23
0
    void RemoveFromList(Part p)
    {
        //移除的话不用管零件当前是否合法,如果能从列表里找到就移除,找不到说明零件不合法根本就没在列表里
        //但是这里的判断条件用了两个,实际上只要一个为true另一个理论上也应该为true,这么写是为了验证代码逻辑有没有漏洞
        if (all_legal_parts.Contains(p) && p.legal)
        {
            all_legal_parts.Remove(p);
            Debug.Log("零件已从合法零件列表中删除");
        }


        if (p.part_type == PartType.PowerPart)
        {
            //如果移除的是动力组件,还要重新打开所有动力组件的按钮并且从动力零件列表中删除
            PowerPart temp = p.GetComponent <PowerPart>();
            have_power_part = false;
            button_controller.ReleasePowerPartButton();
            if (all_power_parts.Contains(temp) && temp.legal)
            {
                all_power_parts.Remove(temp);
                Debug.Log("动力组件已经移除!");
            }
            else
            {
                Debug.Log("动力组件不合法已经直接移除!");
            }
        }
        else if (p.part_type == PartType.LegPart)
        {
            LegPart temp = p.GetComponent <LegPart>();
            switch (temp.self_side)
            {
            case -1:
                have_L_movement_part = false;
                break;

            case 1:
                have_R_movement_part = false;
                break;
            }

            if (all_leg_parts.Contains(temp) && temp.legal)
            {
                all_leg_parts.Remove(temp);
                Debug.Log("一个合法的腿部组件已经移除!");
            }
            else
            {
                Debug.Log("腿部组件不合法已经直接移除!");
            }

            //执行移动组件检测重新确定左右是否都有合法的移动组件
            CheckMovementSide();
        }
        else if (p.part_type == PartType.ControlPart)
        {
            ControlPart temp = p.GetComponent <ControlPart>();
            if (all_ctrl_parts.Contains(temp) && temp.legal)
            {
                all_ctrl_parts.Remove(temp);
                Debug.Log("一个合法的控制组件已经移除!");
            }
            else
            {
                Debug.Log("控制组件不合法已经直接移除!");
            }
        }
        else if (p.part_type == PartType.Equipment)
        {
            EquipmentPart temp = p.GetComponent <EquipmentPart>();
            if (all_equip_parts.Contains(temp) && temp.legal)
            {
                all_equip_parts.Remove(temp);
                Debug.Log("一个合法的控制组件已经移除!");
            }
            else
            {
                Debug.Log("控制组件不合法已经直接移除!");
            }
        }
    }
Example #24
0
    void AllotList(Part p)
    {
        //这个函数不管零件当前是否合法,直接加到相应的合法的零件列表中,然后再通过每帧的合法性检测移除那些不合法的零件;
        if (all_legal_parts.Contains(p))
        {
            Debug.LogError("严重错误 :AllotList 列表中已经存在这个 Part 的实例");
        }
        else
        {
            all_legal_parts.Add(p);
            Debug.LogError("all_legal_parts = " + all_legal_parts.Count);
        }

        if (p.part_type == PartType.PowerPart)
        {
            //have_power_part = true;
            //button_controller.BanPowerPartButton();
            //all_power_parts.Add(p.GetComponent<PowerPart>());
            Debug.LogError("111111111111111111111111111all_power_parts = " + all_power_parts.Count);
        }
        else if (p.part_type == PartType.LegPart)
        {
            LegPart temp = p.GetComponent <LegPart>();
            if (temp.legal)
            {
                //如果是合法的
            }

            switch (temp.self_side)
            {
            case -1:
                have_L_movement_part = true;
                break;

            case 1:
                have_R_movement_part = true;
                break;
            }

            all_leg_parts.Add(temp);

            //执行移动组件检测重新确定左右是否都有合法的移动组件
            CheckMovementSide();
        }
        else if (p.part_type == PartType.ControlPart)
        {
            ControlPart temp = p.GetComponent <ControlPart>();
            if (temp.legal)
            {
                //如果是合法的
            }
            have_ctrl_part = true;
            all_ctrl_parts.Add(temp);
        }
        else if (p.part_type == PartType.Equipment)
        {
            EquipmentPart temp = p.GetComponent <EquipmentPart>();
            if (temp.legal)
            {
                //如果是合法的
            }

            all_equip_parts.Add(temp);
        }
    }
Example #25
0
    public void Init()
    {
        part_pos_default = new Vector3(-2.5f, 1.3f, -1f);
        UIpart_camera    = GameObject.Find("UIPartCamera").GetComponent <Camera>();
        UI_camera        = GameObject.Find("UICamera").GetComponent <Camera>();
        canvas           = GameObject.Find("UICanvasBase").transform as RectTransform;
        UIpart_group     = GameObject.Find("UIPart").transform;
        UIpart_offset    = new Vector3(0, 0, -0.2f);
        unit_blueprint   = GameObject.Find("DesignPlatform/Unit").GetComponent <UnitBlueprint>();
        UI_canvas_top    = GameObject.Find("UICanvasTop").transform as RectTransform;
        self_screen_pos  = Camera.main.WorldToScreenPoint(transform.position);

        foreach (Transform t in GetComponentsInChildren <Transform>())
        {
            if (t.name == "HoverImage")
            {
                hover_image = t.GetComponent <Image>();
            }
            else if (t.name == "BanImage")
            {
                ban_image = t.GetComponent <Image>();
            }
            else if (t.name == "PartName")
            {
                name_text = t.GetComponent <Text>();
            }
            else if (t.name == "iIcon")
            {
                self_i_icon = t.GetComponent <iIcon>();
                self_i_icon.parent_button = this;
            }
        }
        switch ((int)part_type)
        {
        case 0:
            UIpart_prefab       = Instantiate(Resources.Load <GameObject>("UIPart/PowerUIPart/" + UIpart_name), UIpart_group);
            part_particulars_UI = Instantiate(Resources.Load <GameObject>("UI/PartParticulars/PowerPartParticulars"), UI_canvas_top);
            temp_part_prefab    = Instantiate(Resources.Load <GameObject>("Part/PowerPart/" + part_name));
            PowerPart temp_powerpart = temp_part_prefab.GetComponent <PowerPart>();
            name_text.text = temp_powerpart.self_name;
            foreach (RectTransform rt in part_particulars_UI.GetComponentsInChildren <RectTransform>())
            {
                if (rt.name == "Name")
                {
                    rt.GetComponent <Text>().text = temp_powerpart.self_name;
                }
                else if (rt.name == "Power")
                {
                    rt.GetComponent <Text>().text = "能量  +" + temp_powerpart.power_value.ToString();
                }
                else if (rt.name == "Weight")
                {
                    rt.GetComponent <Text>().text = "重量  " + temp_powerpart.weight_value.ToString();
                }
                else if (rt.name == "Durability")
                {
                    rt.GetComponent <Text>().text = "耐久  " + temp_powerpart.durability_value.ToString();
                }
                else if (rt.name == "Specialty")
                {
                    //rt.GetComponent<Text>().text = "特性  " + temp_powerpart.durability_value.ToString();
                }
                else if (rt.name == "NormalDEF")
                {
                    rt.GetComponent <Text>().text = temp_powerpart.normalDEF_value.ToString();
                }
                else if (rt.name == "BlastDEF")
                {
                    rt.GetComponent <Text>().text = temp_powerpart.blastDEF_value.ToString();
                }
                else if (rt.name == "EnergyDEF")
                {
                    rt.GetComponent <Text>().text = temp_powerpart.energyDEF_value.ToString();
                }
                else if (rt.name == "Cost")
                {
                    rt.GetComponent <Text>().text = temp_powerpart.cost.ToString();
                }
            }
            break;

        case 1:
            UIpart_prefab       = Instantiate(Resources.Load <GameObject>("UIPart/MovementUIPart/" + UIpart_name), UIpart_group);
            part_particulars_UI = Instantiate(Resources.Load <GameObject>("UI/PartParticulars/LegPartParticulars"), UI_canvas_top);
            temp_part_prefab    = Instantiate(Resources.Load <GameObject>("Part/MovementPart/LegPart/" + part_name));
            LegPart temp_legpart = temp_part_prefab.GetComponent <LegPart>();
            name_text.text = temp_legpart.self_name;
            foreach (RectTransform rt in part_particulars_UI.GetComponentsInChildren <RectTransform>())
            {
                if (rt.name == "Name")
                {
                    rt.GetComponent <Text>().text = temp_legpart.self_name;
                }
                else if (rt.name == "UsePower")
                {
                    rt.GetComponent <Text>().text = "持续耗能    " + temp_legpart.usepower_value.ToString();
                }
                else if (rt.name == "Load")
                {
                    rt.GetComponent <Text>().text = "最大载重    " + temp_legpart.load_value.ToString();
                }
                else if (rt.name == "Move")
                {
                    rt.GetComponent <Text>().text = "移动力       " + temp_legpart.move_value.ToString();
                }
                else if (rt.name == "Dodge")
                {
                    rt.GetComponent <Text>().text = "灵活性       " + temp_legpart.dodge_value.ToString();
                }
                else if (rt.name == "Durability")
                {
                    rt.GetComponent <Text>().text = "耐久         " + temp_legpart.durability_value.ToString();
                }
                else if (rt.name == "Specialty")
                {
                    if (temp_legpart.specialty.Count == 0)
                    {
                        rt.GetComponent <Text>().text = "";
                    }
                    else
                    {
                        string spec = "";
                        foreach (int sp in temp_legpart.specialty)
                        {
                            switch (sp)
                            {
                            case 0:
                                spec += "闪避叠加  ";
                                break;

                            case 1:
                                spec += "反应装甲  ";
                                break;
                            }
                        }
                        rt.GetComponent <Text>().text = "特性         " + spec;
                    }
                }
                else if (rt.name == "NormalDEF")
                {
                    rt.GetComponent <Text>().text = temp_legpart.normalDEF_value.ToString();
                }
                else if (rt.name == "BlastDEF")
                {
                    rt.GetComponent <Text>().text = temp_legpart.blastDEF_value.ToString();
                }
                else if (rt.name == "EnergyDEF")
                {
                    rt.GetComponent <Text>().text = temp_legpart.energyDEF_value.ToString();
                }
                else if (rt.name == "Cost")
                {
                    rt.GetComponent <Text>().text = temp_legpart.cost.ToString();
                }
            }
            break;

        case 2:
            UIpart_prefab       = Instantiate(Resources.Load <GameObject>("UIPart/ControlUIPart/" + UIpart_name), UIpart_group);
            part_particulars_UI = Instantiate(Resources.Load <GameObject>("UI/PartParticulars/ControlPartParticulars"), UI_canvas_top);
            temp_part_prefab    = Instantiate(Resources.Load <GameObject>("Part/ControlPart/" + part_name));
            ControlPart temp_controlpart = temp_part_prefab.GetComponent <ControlPart>();
            name_text.text = temp_controlpart.self_name;
            foreach (RectTransform rt in part_particulars_UI.GetComponentsInChildren <RectTransform>())
            {
                if (rt.name == "Name")
                {
                    rt.GetComponent <Text>().text = temp_controlpart.self_name;
                }
                else if (rt.name == "UsePower")
                {
                    rt.GetComponent <Text>().text = "持续耗能    " + temp_controlpart.usepower_value.ToString();
                }
                else if (rt.name == "Weight")
                {
                    rt.GetComponent <Text>().text = "重量    " + temp_controlpart.weight_value.ToString();
                }
                else if (rt.name == "Modules")
                {
                    rt.GetComponent <Text>().text = "模块    " + temp_controlpart.modules_value.ToString();
                }
                else if (rt.name == "Durability")
                {
                    rt.GetComponent <Text>().text = "耐久    " + temp_controlpart.durability_value.ToString();
                }
                else if (rt.name == "NormalDEF")
                {
                    rt.GetComponent <Text>().text = temp_controlpart.normalDEF_value.ToString();
                }
                else if (rt.name == "BlastDEF")
                {
                    rt.GetComponent <Text>().text = temp_controlpart.blastDEF_value.ToString();
                }
                else if (rt.name == "EnergyDEF")
                {
                    rt.GetComponent <Text>().text = temp_controlpart.energyDEF_value.ToString();
                }
                else if (rt.name == "Cost")
                {
                    rt.GetComponent <Text>().text = temp_controlpart.cost.ToString();
                }
            }
            break;

        case 3:
            UIpart_prefab       = Instantiate(Resources.Load <GameObject>("UIPart/EquipmentUIPart/" + UIpart_name), UIpart_group);
            part_particulars_UI = Instantiate(Resources.Load <GameObject>("UI/PartParticulars/EquipmentPartParticulars"), UI_canvas_top);
            temp_part_prefab    = Instantiate(Resources.Load <GameObject>("Part/EquipmentPart/" + part_name));
            EquipmentPart temp_equippart = temp_part_prefab.GetComponent <EquipmentPart>();
            name_text.text = temp_equippart.self_name;
            foreach (RectTransform rt in part_particulars_UI.GetComponentsInChildren <RectTransform>())
            {
                if (rt.name == "Name")
                {
                    rt.GetComponent <Text>().text = temp_equippart.self_name;
                }
                else if (rt.name == "PartType")
                {
                    string s1 = "";
                    string s2 = "";


                    switch ((int)temp_equippart.damage_type)
                    {
                    case 0:
                        //normal
                        s1 = "常规武器";
                        break;

                    case 1:
                        //blast
                        s1 = "爆炸武器";
                        break;

                    case 2:
                        //energy
                        s1 = "能量武器";
                        break;
                    }
                    switch ((int)temp_equippart.atk_pattern)
                    {
                    case 0:
                        s2 = "射击";
                        break;

                    case 1:
                        s2 = "飞弹";
                        break;
                    }

                    rt.GetComponent <Text>().text = "装备·" + s1 + "·" + s2;
                }
                else if (rt.name == "UsePower")
                {
                    rt.GetComponent <Text>().text = "持续耗能    " + temp_equippart.usepower_value.ToString();
                }
                else if (rt.name == "EachUsePower")
                {
                    rt.GetComponent <Text>().text = "使用耗能    " + temp_equippart.eachusepower_value.ToString();
                }
                else if (rt.name == "Damage")
                {
                    rt.GetComponent <Text>().text = "伤害             " + temp_equippart.damage.ToString() + " * " + temp_equippart.attack_number.ToString();
                }
                else if (rt.name == "DamageTypeIcon")
                {
                    switch ((int)temp_equippart.damage_type)
                    {
                    case 0:
                        //normal
                        rt.GetComponent <Image>().sprite = Resources.LoadAll <Sprite>("Icon/DamageTypeIcons")[0];
                        break;

                    case 1:
                        //blast
                        rt.GetComponent <Image>().sprite = Resources.LoadAll <Sprite>("Icon/DamageTypeIcons")[1];
                        break;

                    case 2:
                        //energy
                        rt.GetComponent <Image>().sprite = Resources.LoadAll <Sprite>("Icon/DamageTypeIcons")[2];
                        break;
                    }
                }
                else if (rt.name == "Range")
                {
                    rt.GetComponent <Text>().text = "射程          " + temp_equippart.range_value.ToString();
                }
                else if (rt.name == "Ammo")
                {
                    string one;
                    string two;
                    if (temp_equippart.ammo_value == -999)
                    {
                        one = "∞";
                    }
                    else
                    {
                        one = temp_equippart.ammo_value.ToString();
                    }
                    if (temp_equippart.magazine_value == -999)
                    {
                        two = "∞";
                    }
                    else
                    {
                        two = temp_equippart.magazine_value.ToString();
                    }
                    rt.GetComponent <Text>().text = "弹药          " + one + "/" + two;
                }
                else if (rt.name == "Specialty")
                {
                    if (temp_equippart.specialty.Count == 0)
                    {
                        rt.GetComponent <Text>().text = "";
                    }
                    else
                    {
                        string spec = "";
                        foreach (int sp in temp_equippart.specialty)
                        {
                            switch (sp)
                            {
                            case 0:
                                spec += "连射  ";
                                break;

                            case 1:
                                spec += "  ";
                                break;
                            }
                        }
                        rt.GetComponent <Text>().text = "特性         " + spec;
                    }
                }
                else if (rt.name == "Weight")
                {
                    rt.GetComponent <Text>().text = "重量          " + temp_equippart.weight_value.ToString();
                }
                else if (rt.name == "Durability")
                {
                    rt.GetComponent <Text>().text = "耐久          " + temp_equippart.durability_value.ToString();
                }
                else if (rt.name == "Tag")
                {
                    if (temp_equippart.symmetry)
                    {
                        rt.GetComponentInChildren <Text>().text = "对称";
                    }
                    else
                    {
                        rt.GetComponentInChildren <Text>().text = "多方向";
                    }
                }
                else if (rt.name == "NormalDEF")
                {
                    rt.GetComponent <Text>().text = temp_equippart.normalDEF_value.ToString();
                }
                else if (rt.name == "BlastDEF")
                {
                    rt.GetComponent <Text>().text = temp_equippart.blastDEF_value.ToString();
                }
                else if (rt.name == "EnergyDEF")
                {
                    rt.GetComponent <Text>().text = temp_equippart.energyDEF_value.ToString();
                }
                else if (rt.name == "Cost")
                {
                    rt.GetComponent <Text>().text = temp_equippart.cost.ToString();
                }
            }
            break;
        }

        Destroy(temp_part_prefab);            //销毁临时零件
        part_particulars_UI.GetComponent <PartParticulars>().parent_button = this;
        part_particulars_UI.SetActive(false); //关闭零件详情页
    }
Example #26
0
 public void RemoveEquip(EquipmentPart part)
 {
     equippingItems[(int)part] = EMPTY;
 }