Beispiel #1
0
    void Start()
    {
        UnitEquipment = new UnitEquipment();
        ModelInfos    = new HumanModelInfos();

        RandomizeModel();

        SkinToneMaxValue  = Enum.GetNames(typeof(SkinTone)).Length - 1;
        HairTypeMaxValue  = 16 + 1;
        HairColorMaxValue = Enum.GetNames(typeof(HairColor)).Length;
    }
    public static UnitEquipment Deserialize(UnitEquipmentSerializable serializedData, Dictionary <string, string> itemsDb)
    {
        UnitEquipment unitEquipment = new UnitEquipment();

        unitEquipment.RightWeapon = DeserializeItem(unitEquipment.RightWeapon, serializedData.RightWeapon.ToString(), itemsDb);
        unitEquipment.LeftWeapon  = DeserializeItem(unitEquipment.LeftWeapon, serializedData.LeftWeapon.ToString(), itemsDb);
        unitEquipment.Body        = DeserializeItem(unitEquipment.Body, serializedData.Body.ToString(), itemsDb);
        unitEquipment.Head        = DeserializeItem(unitEquipment.Head, serializedData.Head.ToString(), itemsDb);
        unitEquipment.Back        = DeserializeItem(unitEquipment.Back, serializedData.Back.ToString(), itemsDb);
        unitEquipment.AccessoryA  = DeserializeItem(unitEquipment.AccessoryA, serializedData.AccessoryA.ToString(), itemsDb);
        unitEquipment.AccessoryB  = DeserializeItem(unitEquipment.AccessoryB, serializedData.AccessoryB.ToString(), itemsDb);

        return(unitEquipment);
    }
    public static UnitEquipmentSerializable Serialize(UnitEquipment unitEquipment)
    {
        UnitEquipmentSerializable serializedData = new UnitEquipmentSerializable();

        serializedData.RightWeapon = (unitEquipment.RightWeapon == null) ? 0 : unitEquipment.RightWeapon.ItemId;
        serializedData.LeftWeapon  = (unitEquipment.LeftWeapon == null) ? 0 : unitEquipment.LeftWeapon.ItemId;
        serializedData.Body        = (unitEquipment.Body == null) ? 0 : unitEquipment.Body.ItemId;
        serializedData.Head        = (unitEquipment.Head == null) ? 0 : unitEquipment.Head.ItemId;
        serializedData.Back        = (unitEquipment.Back == null) ? 0 : unitEquipment.Back.ItemId;
        serializedData.AccessoryA  = (unitEquipment.AccessoryA == null) ? 0 : unitEquipment.AccessoryA.ItemId;
        serializedData.AccessoryB  = (unitEquipment.AccessoryB == null) ? 0 : unitEquipment.AccessoryB.ItemId;

        return(serializedData);
    }
    public static GameObject BuildModel(HumanModelInfos modelInfos, UnitEquipment unitEquipment)
    {
        GameObject model = GameObject.Instantiate((GameObject)Resources.Load("Body/Template", typeof(GameObject)));

        if (modelInfos == null)
        {
            modelInfos = new HumanModelInfos();
            modelInfos.Randomize();
        }

        AddHair(model, modelInfos);
        AddBody(model, modelInfos, unitEquipment.Body);
        AddHead(model, unitEquipment.Head);
        AddBack(model, unitEquipment.Back);
        AddWeapons(model, unitEquipment.RightWeapon, unitEquipment.LeftWeapon);

        return(model);
    }
        public async Task <IActionResult> CreateEquipment(int unitId, string type)
        {
            // TODO specify amount of items to be created
            var dbContext  = new ApartmentsDbContext();
            var equipments = dbContext.Equipments.Where(equipment => equipment.Type == type).ToList();

            var equipmentDTO = new EquipmentDTO();

            if (equipments.Count == 0)
            {
                equipmentDTO.Type           = type;
                equipmentDTO.UnitEquipments = new List <UnitEquipment>();

                await _equipmentFacade.CreateEquipmentAsync(equipmentDTO);

                equipments = dbContext.Equipments.Where(equipment => equipment.Type == type).ToList();
            }

            var equipment = equipments.First();

            equipmentDTO.Type           = equipment.Type;
            equipmentDTO.UnitEquipments = equipment.UnitEquipments;
            equipmentDTO.Id             = equipment.Id;

            var unitEquipment = new UnitEquipment
            {
                EquipmentId = equipment.Id,
                UnitId      = unitId
            };

            equipmentDTO.UnitEquipments.Add(unitEquipment);

            await _equipmentFacade.UpdateEquipmentAsync(equipmentDTO);

            return(RedirectToAction(nameof(ShowEquipments), new { unitId }));
        }