public void ShouldGiveMaxIncrease()
        {
            InventoryComponent.MaxCapacity = 10;
            InventoryComponent.Add(Resource, 4);

            Assert.AreEqual(6, InventoryComponent.MaxIncrease(Resource));
        }
Ejemplo n.º 2
0
        private void CreateBot(bool logger)
        {
            var inventoryComponent = new InventoryComponent();

            var behaviour = BotBehaviours.BotBehaviour();

            var entity = _engine.NewEntity()
                         .AddComponent(new MovementComponent {
                Velocity = new Vector2(2, 2)
            })
                         .AddComponent(new HealthComponent(100))
                         .AddComponent(new StaminaComponent(100))
                         .AddComponent(new StaminaBarComponent())
                         .AddComponent(new HealthBarComponent())
                         .AddComponent(new InventoryViewComponent())
                         .AddComponent(inventoryComponent)
                         .AddComponent(new BTBehaviourComponent(behaviour));

            var renderable = new BotView(entity);

            entity
            .AddComponent(new PositionComponent(GetRandomMapPosition(renderable.Size)))
            .AddComponent(new RenderComponent(renderable));

            if (logger)
            {
                CreateBehaviourLogger(behaviour);
            }
        }
Ejemplo n.º 3
0
    public override void Tick(float deltaTime)
    {
        for (int i = 0; i < filters.Length; i++)
        {
            // cache variables
            Filter              filter        = filters[i];
            InventoryComponent  inventoryComp = filter.inventoryComponent;
            InputComponent      inputComp     = filter.inputComponent;
            InteractorComponent interactComp  = filter.interactorComponent;


            // ----- logic -----
            if (inputComp.GetKeyDown(KeyCode.E) || inputComp.GetButtonDown("Fire1"))
            {
                isGathering = true;
            }
            else if (inputComp.GetKeyUp(KeyCode.E) || inputComp.GetButtonUp("Fire1") || isGathering == false)
            {
                //stop gather
                interactedTime = 0f;
                isGathering    = false;
                player.uiComponent.gatheringPrompt.ProgressFill(0);
            }

            if (isGathering)
            {
                AttemptWorldInteract(interactComp, player.inventoryComponent, inputComp.worldInteractMask);
                interactComp.SetInteractMode(InteractMode.Object);
            }
        }
    }
        public void ShouldNotUnregisterWhenNotRegistered()
        {
            Assert.False(InventoryComponent.IsRegistered(Resource));

            InventoryComponent.Unregister(Resource);
            Assert.False(InventoryComponent.IsRegistered(Resource));
        }
Ejemplo n.º 5
0
 public override void Bind(InventoryComponent inventoryComponent)
 {
     BindInventoryComponent(inventoryComponent);
     BindComponentToDataDbWrite.RegisterInventoryInDatabase(_inventoryStructure, inventoryComponent);
     SetState(new BindState(InventoryBinding, DataInventory));
     LoadIfNecessary(DataInventory);
 }
Ejemplo n.º 6
0
 private void RelayInventoryEvent <T>(InventoryComponent component, T args) where T : EntityEventArgs
 {
     foreach (var equipped in component.GetAllHeldItems())
     {
         RaiseLocalEvent(equipped, args, false);
     }
 }
Ejemplo n.º 7
0
 public void Construct(Character character, InventoryComponent stashInventory)
 {
     this.character      = character;
     this.stashInventory = stashInventory;
     this.inventory      = character.Entity.GetComponent <InventoryComponent>();
     this.equipment      = character.Entity.GetComponent <EquipmentComponent>();
 }
 private void OnDamageModify(EntityUid uid, InventoryComponent component, DamageModifyEvent args)
 {
     foreach (var equipped in component.GetAllHeldItems())
     {
         RaiseLocalEvent(equipped.Uid, args, false);
     }
 }
        public bool TryGetInventoryComponent(DataInventory dataInventory, out InventoryComponent componentResult)
        {
            var slotRootComponent = _bindSlots.Components.FirstOrDefault(component => component.Data.DataInventory == dataInventory);

            componentResult = slotRootComponent?.InventoryComponent;
            return(componentResult != null);
        }
Ejemplo n.º 10
0
        public static void RetainNecessaryComponents(StateComponents stateComponents, StateSpaceComponents spaceComponents)
        {
            //Transfer components, then delete all AI-related components and all item related components that aren't in the players' inventories.
            stateComponents.StateSpaceComponents = spaceComponents;
            List <Guid> itemsToKeep = new List <Guid>();

            foreach (Guid id in stateComponents.StateSpaceComponents.Entities.Where(x => (x.ComponentFlags & ComponentMasks.CombatReadyAI) == ComponentMasks.CombatReadyAI).Select(x => x.Id))
            {
                //Change this to only hostile AI when allies need to be implemented.
                stateComponents.StateSpaceComponents.EntitiesToDelete.Add(id);
            }
            foreach (Guid id in stateComponents.StateSpaceComponents.Entities.Where(x => (x.ComponentFlags & ComponentMasks.PickupItem) == ComponentMasks.PickupItem).Select(x => x.Id))
            {
                foreach (Guid player in spaceComponents.Entities.Where(x => (x.ComponentFlags & Component.COMPONENT_PLAYER) == Component.COMPONENT_PLAYER).Select(x => x.Id))
                {
                    InventoryComponent inventory = stateComponents.StateSpaceComponents.InventoryComponents[player];
                    if (!inventory.Artifacts.Contains(id) && !inventory.Consumables.Contains(id))
                    {
                        stateComponents.StateSpaceComponents.EntitiesToDelete.Add(id);
                        break;
                    }
                    else
                    {
                        itemsToKeep.Add(id);
                    }
                }
            }
            foreach (Guid id in stateComponents.StateSpaceComponents.Entities.Where(x => (x.ComponentFlags & Component.COMPONENT_PLAYER) != Component.COMPONENT_PLAYER).Select(x => x.Id))
            {
                if (!itemsToKeep.Contains(id))
                {
                    stateComponents.StateSpaceComponents.EntitiesToDelete.Add(id);
                }
            }
        }
        public void ExportData(out PartyMemberSnapshot snapshot, out PartyMember data)
        {
            snapshot = this._Snapshot;
            data     = this._Data;

            if (this._Inventory != null)
            {
                if (data.Inventory == null)
                {
                    data.Inventory = new InventoryComponent();
                }
                else
                {
                    data.Inventory.Items.Clear();
                }

                data.Inventory.Items.AddRange(this._Inventory.RawItems);

                foreach (var viewModel in this._Inventory.Items)
                {
                    var bitWriter = new BitWriter(0x1000);
                    InventoryComponent.WriteItemData(bitWriter, viewModel.Data);
                    var rawItem = new InventoryComponent.RawItemData();
                    rawItem.Id         = viewModel.Id;
                    rawItem.DataBytes  = bitWriter.GetBytes();
                    rawItem.DataLength = bitWriter.Position;
                    data.Inventory.Items.Add(rawItem);
                }
            }
        }
Ejemplo n.º 12
0
            public void Execute(InventoryComponent inv, EntityManager em)
            {
                if (em.GetComponentObject <ItemComponent>(item).equippable)
                {
                    if (inv.inventory[1] != Entity.Null) // Something already in slot
                    {
                        new DropCommand(1).Execute(inv, em);
                    }

                    inv.inventory[1] = item;
                    // TODO: Next equippable slot
                }
                else
                {
                    inv.inventory[2] = item;
                    // TODO: Next non-equippable slot

                    if (em.HasComponent <MeshRenderer>(item))
                    {
                        em.GetComponentObject <MeshRenderer>(item).enabled = false;
                    }
                }

                if (em.HasComponent <Rigidbody>(item))
                {
                    em.GetComponentObject <Rigidbody>(item).useGravity = false;
                }
                if (em.GetComponentObject <Transform>(item).GetComponent <Collider>() != null)
                {
                    em.GetComponentObject <Transform>(item).GetComponent <Collider>().enabled = false;
                }
            }
Ejemplo n.º 13
0
        public static short GetFirstFreeSlot(this InventoryComponent inv, IReadOnlyCollection <ItemInstanceDto> subInventory, ItemDto source, short amount)
        {
            ItemInstanceDto item = subInventory.FirstOrDefault(x => x != null &&
                                                               x.Amount + amount < GameConf.Inventory.MaxItemPerSlot && x.ItemId == source.Id && x.Item.Type != InventoryType.Equipment);

            return(item?.Slot ?? GetFirstFreeSlot(inv, subInventory));
        }
Ejemplo n.º 14
0
        /// <summary>
        ///     Block ingestion attempts based on the equipped mask or head-wear
        /// </summary>
        private void OnInventoryIngestAttempt(EntityUid uid, InventoryComponent component, IngestionAttemptEvent args)
        {
            if (args.Cancelled)
            {
                return;
            }

            IngestionBlockerComponent blocker;

            if (component.TryGetSlotItem(EquipmentSlotDefines.Slots.MASK, out ItemComponent? mask) &&
                EntityManager.TryGetComponent(mask.Owner, out blocker) &&
                blocker.Enabled)
            {
                args.Blocker = mask.Owner;
                args.Cancel();
                return;
            }

            if (component.TryGetSlotItem(EquipmentSlotDefines.Slots.HEAD, out ItemComponent? head) &&
                EntityManager.TryGetComponent(head.Owner, out blocker) &&
                blocker.Enabled)
            {
                args.Blocker = head.Owner;
                args.Cancel();
            }
        }
Ejemplo n.º 15
0
        public void NestedInventoriesSerializeAndDeserializeCorrectly()
        {
            var outerInventory = InventoryComponent.Create(20);

            var waterskin = Entity.Create("waterskinId", "waterskinName");

            waterskin.AddComponent(StorableComponent.Create());
            var waterskinInventory = InventoryComponent.Create(10);

            var nested = Entity.Create("nestedId", "nestedName");

            nested.AddComponent(StorableComponent.Create());

            waterskinInventory.AddEntity(nested);
            waterskin.AddComponent(waterskinInventory);

            outerInventory.AddEntity(waterskin);

            string saved        = outerInventory.Save();
            var    newComponent = InventoryComponent.Create(saved);

            Assert.Equal("waterskinId", newComponent._StoredEntities[0].EntityId);
            Assert.Equal("waterskinName", newComponent._StoredEntities[0].EntityName);
            Assert.NotNull(newComponent._StoredEntities[0].GetComponent <StorableComponent>());
            Assert.Equal("nestedId", newComponent._StoredEntities[0].GetComponent <InventoryComponent>()._StoredEntities[0].EntityId);
            Assert.Equal("nestedName", newComponent._StoredEntities[0].GetComponent <InventoryComponent>()._StoredEntities[0].EntityName);
        }
Ejemplo n.º 16
0
    public override bool perform(GameObject agent)
    {
        if (targetWoodDeposit.numWood > 0)
        {
            int carryingCapacity = agent.GetComponent <MinionStatsComponent>().carryingCapacity;

            InventoryComponent inventory = agent.GetComponent <InventoryComponent>();

            if (targetWoodDeposit.numWood >= carryingCapacity)
            {
                targetWoodDeposit.numWood -= carryingCapacity;
                inventory.numWood         += carryingCapacity;
            }
            else
            {
                inventory.numWood        += targetWoodDeposit.numWood;;
                targetWoodDeposit.numWood = 0;
            }

            hasWood = true;
            //TODO: add animation for  wood carrying

            return(true);
        }
        else
        {
            return(false);
        }
    }
 public void RegisterInventoryInDatabase(DataInventoryStructure inventoryStructure,
                                         InventoryComponent inventoryComponent)
 {
     RegisterInventoryStructureInDatabase(inventoryStructure);
     inventoryComponent.SetInventoryStructure(inventoryStructure);
     BindSlotsComponentsToData(inventoryComponent);
 }
Ejemplo n.º 18
0
        public void IncludesEntityGroup()
        {
            var         component    = InventoryComponent.Create(0);
            JsonElement deserialized = JsonSerializer.Deserialize <JsonElement>(component.Save());

            Assert.Equal(InventoryComponent.ENTITY_GROUP, deserialized.GetProperty("EntityGroup").GetString());
        }
Ejemplo n.º 19
0
    private void AttemptWorldInteract(InteractorComponent interactorComp, InventoryComponent inventoryComp, LayerMask mask)
    {
        Transform t        = interactorComp.GetOwnerGO().transform;
        Vector3   position = t.position + t.forward;

        RaycastHit[] hits;
        hits = Physics.BoxCastAll(position, Vector3.one, t.forward, Quaternion.identity, 1f, mask);

        for (int i = 0; i < hits.Length; i++)
        {
            CartComponent tc = hits[i].transform.GetComponentInParent <CartComponent>();
            if (tc)
            {
                interactorComp.currentInteractable = tc;
                tc.isTraveling = false;
                interactorComp.SetInteractMode(InteractMode.Object);
            }

            // BaseResource treeComp = hits[i].transform.gameObject.GetComponentInParent<CollectibleComponent>().baseCollectible;
            // if (treeComp != null)
//             {
//                 GatherResource(treeComp, inventoryComp);
//             }
        }
    }
Ejemplo n.º 20
0
        public static SkillLevelsComponent ApplyStatModifications(StateSpaceComponents spaceComponents, Guid entity, SkillLevelsComponent originalStats)
        {
            SkillLevelsComponent newStats = originalStats;

            //See if the entity has an inventory to check for artifact modifications
            if (spaceComponents.InventoryComponents.ContainsKey(entity))
            {
                InventoryComponent entityInventory = spaceComponents.InventoryComponents[entity];
                //For each artifact in the entity' inventory, look for the statmodificationcomponent, and modify stats accordingly.
                foreach (Guid id in  entityInventory.Artifacts)
                {
                    Entity inventoryItem = spaceComponents.Entities.Where(x => x.Id == id).FirstOrDefault();
                    if (inventoryItem != null && (inventoryItem.ComponentFlags & ComponentMasks.Artifact) == ComponentMasks.Artifact)
                    {
                        StatModificationComponent statsMods = spaceComponents.StatModificationComponents[id];
                        newStats.Accuracy      = (newStats.Accuracy + statsMods.AccuracyChange < 0) ? 0 : newStats.Accuracy + statsMods.AccuracyChange;
                        newStats.Defense       = (newStats.Defense + statsMods.DefenseChange < 0) ? 0 : newStats.Defense + statsMods.DefenseChange;
                        newStats.DieNumber     = (newStats.DieNumber + statsMods.DieNumberChange < 1) ? 1 : newStats.DieNumber + statsMods.DieNumberChange;
                        newStats.Health        = (newStats.Health + statsMods.HealthChange < 0) ? 0 : newStats.Health + statsMods.HealthChange;
                        newStats.MaximumDamage = (newStats.MaximumDamage + statsMods.MaximumDamageChange < 1) ? 1 : newStats.MaximumDamage + statsMods.MaximumDamageChange;
                        newStats.MinimumDamage = (newStats.MinimumDamage + statsMods.MinimumDamageChange < 1) ? 1 : newStats.MinimumDamage + statsMods.MinimumDamageChange;
                    }
                }
            }

            return(newStats);
        }
Ejemplo n.º 21
0
    public override void Initialize(Transform[] objects)
    {
        // list because I don't know size here
        List <Filter> tmpFilters = new List <Filter>();
        int           index      = 0;

        for (int i = 0; i < objects.Length; i++)
        {
            // check performance
            InventoryComponent  invC = objects[i].GetComponent <InventoryComponent>();
            InputComponent      inpC = objects[i].GetComponent <InputComponent>();
            InteractorComponent intC = objects[i].GetComponent <InteractorComponent>();
            MovementComponent   movC = objects[i].GetComponent <MovementComponent>();

            if (invC && inpC && intC && movC)
            {
                tmpFilters.Add(new Filter(index, objects[i].gameObject, invC, inpC, intC, movC));
            }
        }

        filters = tmpFilters.ToArray();

        environmentComponent   = GetComponentInChildren <EnvironmentComponent>();
        transportableComponent = GetComponentInChildren <CartComponent>();
        cartInteractable       = transportableComponent.GetComponent <InteractableComponent>();
        lightComponent         = GetComponentInChildren <LightComponent>();
        //villagerComponent = GetComponentInChildren<VillagerComponent>();
        travelComponent  = GetComponentInChildren <TravelComponent>();
        treeComponents   = GetComponentsInChildren <CollectibleComponent>();
        goapSystem       = GetComponent <GOAPSystem>();
        navMeshComponent = playerGO.GetComponent <NavMeshComponent>();
    }
        /// <summary>
        ///     Block ingestion attempts based on the equipped mask or head-wear
        /// </summary>
        private void OnInventoryIngestAttempt(EntityUid uid, InventoryComponent component, IngestionAttemptEvent args)
        {
            if (args.Cancelled)
            {
                return;
            }

            IngestionBlockerComponent blocker;

            if (_inventorySystem.TryGetSlotEntity(uid, "mask", out var maskUid) &&
                EntityManager.TryGetComponent(maskUid, out blocker) &&
                blocker.Enabled)
            {
                args.Blocker = maskUid;
                args.Cancel();
                return;
            }

            if (_inventorySystem.TryGetSlotEntity(uid, "head", out var headUid) &&
                EntityManager.TryGetComponent(headUid, out blocker) &&
                blocker.Enabled)
            {
                args.Blocker = headUid;
                args.Cancel();
            }
        }
Ejemplo n.º 23
0
        protected override async Task Handle(InventoryMoveEvent args, CancellationToken cancellation)
        {
            if (!(args.Sender is IPlayerEntity player))
            {
                return;
            }
            InventoryComponent inv = player.Inventory;

            ItemInstanceDto source = inv.GetSubInvFromInventoryType(args.InventoryType)[args.SourceSlot];
            ItemInstanceDto dest   = inv.GetSubInvFromInventoryType(args.InventoryType)[args.DestinationSlot];

            if (source == null)
            {
                return;
            }

            if (dest != null && (args.InventoryType == InventoryType.Main || args.InventoryType == InventoryType.Etc) && dest.ItemId == source.ItemId &&
                dest.Amount + source.Amount > _gameConfiguration.Inventory.MaxItemPerSlot)
            {
                // if both source & dest are stackable && slots combined are > max slots
                // should provide a "fill" possibility
                return;
            }

            if (dest == null)
            {
                await inv.MoveItem(source, args);
            }
            else
            {
                await inv.MoveItems(source, dest);
            }
        }
 private void RelayPressureEvent <T>(InventoryComponent component, T args) where T : PressureEvent
 {
     foreach (var equipped in component.GetAllHeldItems())
     {
         RaiseLocalEvent(equipped.Uid, args, false);
     }
 }
Ejemplo n.º 25
0
 public Item(int id, I18NString name, ItemData data, InventoryComponent inventory)
 {
     Data      = data;
     Id        = id;
     BaseName  = name;
     Inventory = inventory;
 }
Ejemplo n.º 26
0
 private void OnSlipAttemptEvent(EntityUid uid, InventoryComponent component, SlipAttemptEvent args)
 {
     if (component.TryGetSlotItem(EquipmentSlotDefines.Slots.SHOES, out ItemComponent? shoes))
     {
         RaiseLocalEvent(shoes.Owner, args, false);
     }
 }
Ejemplo n.º 27
0
 private void OnElectrocutionAttempt(EntityUid uid, InventoryComponent component, ElectrocutionAttemptEvent args)
 {
     foreach (var equipped in component.GetAllHeldItems())
     {
         RaiseLocalEvent(equipped.Uid, args, false);
     }
 }
Ejemplo n.º 28
0
 public override void Update(Entity entity, InventoryComponent inventory)
 {
     if (inventory.TryGetItem(_config.Item))
     {
         entity.AddComponent <T>();
     }
 }
Ejemplo n.º 29
0
        public void Init(GameClient client, UserData.UserData data)
        {
            Achievements = data.achievements;

            FavoriteRooms = new ArrayList();
            foreach (int id in data.favouritedRooms)
            {
                FavoriteRooms.Add(id);
            }

            _client            = client;
            BadgeComponent     = new BadgeComponent(this, data);
            InventoryComponent = new InventoryComponent(Id, client);

            quests = data.quests;

            Messenger = new HabboMessenger(Id);
            Messenger.Init(data.friends, data.requests);
            _friendCount  = Convert.ToInt32(data.friends.Count);
            _disconnected = false;
            Relationships = data.Relations;

            InitSearches();
            InitFX();
            InitClothing();
            InitIgnores();
        }
Ejemplo n.º 30
0
        /// <summary>
        /// For an item makes sure that an item set is created if said item is part of one, if this item is not part of
        /// an item set or the the item set this item belongs to is already created, this does nothing
        /// </summary>
        /// <param name="inventory">The inventory to get possible set items from</param>
        /// <param name="lot">The lot for which we wish to check if item sets should be tracked</param>
        public static async Task CreateIfNewSet(InventoryComponent inventory, Lot lot)
        {
            await using var context = new CdClientContext();
            var clientItemSets = context.ItemSetsTable.Where(
                i => i.ItemIDs.Contains(lot.ToString()));

            foreach (var clientItemSet in clientItemSets)
            {
                // Make sure that the item set is valid and that the inventory doesn't already track an item set with this ID
                if (clientItemSet.SetID == null ||
                    inventory.ActiveItemSets.Any(i => i._setId == clientItemSet.SetID.Value))
                {
                    continue;
                }

                var itemSet = Instantiate(inventory, clientItemSet.SetID.Value);
                Start(itemSet);

                foreach (var itemSetLot in clientItemSet.ItemIDs.Split(","))
                {
                    itemSet._itemsInSet.Add(new Lot(int.Parse(itemSetLot)));
                }

                // The skill sets that are unlocked when wearing n items of a set
                itemSet._skillSetMap[2] = clientItemSet.SkillSetWith2;
                itemSet._skillSetMap[3] = clientItemSet.SkillSetWith3;
                itemSet._skillSetMap[4] = clientItemSet.SkillSetWith4;
                itemSet._skillSetMap[5] = clientItemSet.SkillSetWith5;
                itemSet._skillSetMap[6] = clientItemSet.SkillSetWith6;
            }
        }
    //Rebels
    public void setEquip(Vector4 v)
    {
        armory = GameObject.Find("Armory").GetComponent<ArmoryComponent>();

        items = this.GetComponent<InventoryComponent>();

        ManagerSystem managersys = (ManagerSystem) FindObjectOfType(typeof(ManagerSystem));

        GameObject prefab = managersys.rebelPrefab;
        model = Instantiate(prefab);

        model.transform.SetParent(this.transform);
        model.transform.localPosition = prefab.transform.position;
        model.transform.localRotation = prefab.transform.rotation;
        model.transform.localScale = prefab.transform.localScale;
        anim = (Animator)model.GetComponent(typeof(Animator));

        Enums.Stance stance = Enums.Stance.Range1H;

        WeaponHolding weapons = (WeaponHolding)model.GetComponent(typeof(WeaponHolding));
        weapons.owner = this.gameObject;
        GameObject tmp;

        //primärwaffe
        items.primaryWeaponType = (Enums.PrimaryWeapons)v.x;
        if (items.primaryWeaponType == Enums.PrimaryWeapons.Pipe)
        {
            tmp = weapons.setLeftHandItem(armory.r_Pipe, true);
            stance = Enums.Stance.Melee1H;
            weapons.primaryStance = stance;

           items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.Pipe;
           skills.Add(Enums.Actions.Hit);

        }
        /*
        if (items.primaryWeaponType == Enums.PrimaryWeapons.ShieldnStick)
        {
            tmp = Instantiate(armory.ShieldnStick);
            tmp.transform.SetParent(transform);
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.ShieldnStick;
            hp += 20;
            skills.Add(Enums.Actions.Hit);
            stance = Enums.Stance.MeleeRiot;

        }
        else if (items.primaryWeaponType == Enums.PrimaryWeapons.Shotgun)
        {
            tmp = Instantiate(armory.Shotgun);
            tmp.transform.SetParent(transform);
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.Shotgun;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);
            stance = Enums.Stance.Range2H;

        }
        else if (items.primaryWeaponType == Enums.PrimaryWeapons.HuntingRifle)
        {
            tmp = Instantiate(armory.HuntingRifle);
            tmp.transform.SetParent(transform);
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.HuntingRifle;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);
            stance = Enums.Stance.Range2H;
        }
         */
        else if (items.primaryWeaponType == Enums.PrimaryWeapons.AssaultRifle)
        {
            tmp = weapons.setLeftHandItem(armory.r_AssaultRifle, true);
            stance = Enums.Stance.Range2H;
            weapons.primaryStance = stance;

            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.AssaultRifle;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);

        }
            /*
        else if (items.primaryWeaponType == Enums.PrimaryWeapons.MG)
        {
            tmp = Instantiate(armory.MG);
            tmp.transform.SetParent(transform);
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.MG;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);
            stance = Enums.Stance.Range2H;
        }
        else if (items.primaryWeaponType == Enums.PrimaryWeapons.Sniper)
        {
            tmp = Instantiate(armory.Sniper);
            tmp.transform.SetParent(transform);
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.Sniper;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);
            stance = Enums.Stance.Range2H;
        }*/
        //if (items.primary != null)
            //items.primary.gameObject.transform.SetParent(this.transform);

        //sekundärwaffe
        items.secondaryWeaponType = (Enums.SecondaryWeapons)v.y;
        if (items.secondaryWeaponType == Enums.SecondaryWeapons.Pistol)
        {
            tmp = weapons.setLeftHandItem(armory.r_Pistol, false);
            items.secondary = tmp.GetComponent<WeaponComponent>();
            items.secondaryWeaponType = Enums.SecondaryWeapons.Pistol;

            if (items.primaryWeaponType != Enums.PrimaryWeapons.None)
            {
                if (items.primaryWeaponType == Enums.PrimaryWeapons.Pipe) //|| items.primaryWeaponType == Enums.PrimaryWeapons.ShieldnStick
                {
                    skills.Add(Enums.Actions.Shoot);
                    skills.Add(Enums.Actions.Reload);
                }
                skills.Add(Enums.Actions.ChangeWeapon);
            }
                // keine primary weapon
            else
            {
                items.isPrimary = false;
                skills.Add(Enums.Actions.Shoot);
                skills.Add(Enums.Actions.Reload);
                //Ist auch default schon auf Range1H
                stance = Enums.Stance.Range1H;
            }
        }

        anim.SetInteger(animId_iStance, (int)stance);

        /*
        else if (items.secondaryWeaponType == Enums.SecondaryWeapons.Mortar)
        {

            items.secondary = Instantiate(armory.Mortar).GetComponent<WeaponComponent>();
        }
        else if (items.secondaryWeaponType == Enums.SecondaryWeapons.RPG)
        {

            items.secondary = Instantiate(armory.RPG).GetComponent<WeaponComponent>();
        }

        */
        //utility1
        items.utility1 = (Enums.Equipment)v.z;
        if (items.utility1 == Enums.Equipment.Kevlar)
        {
            hp += 10;
        }
        else if (items.utility1 == Enums.Equipment.Helmet)
        {
            hp += 10;
        }
        /*
         else if (items.utility1 == Enums.Equipment.SuicideBelt)
        {

        }
        */

        else if (items.utility1 == Enums.Equipment.MediPack)
        {
            items.amountMediKits = 2;
            skills.Add(Enums.Actions.Heal);
        }

        /*
         * else if (items.utility1 == Enums.Equipment.Mine)
        {
            items.amountMines = 2;
        }
        else if (items.utility1 == Enums.Equipment.Rocks)
        {

        }
         */
        else if (items.utility1 == Enums.Equipment.Mollotov)
        {
            items.amountMolotovs = 2;
            skills.Add(Enums.Actions.Molotov);
        }
        else if (items.utility1 == Enums.Equipment.Grenade)
        {
            items.amountGrenades = 1;
            skills.Add(Enums.Actions.Grenade);
        }
        else if (items.utility1 == Enums.Equipment.SmokeGreneade)
        {
            items.amountSmokes = 2;
            skills.Add(Enums.Actions.Smoke);
        }
        else if (items.utility1 == Enums.Equipment.Teargas)
        {
            items.amountTeargas = 2;
            skills.Add(Enums.Actions.Teargas);
        }

        //utility 2
        items.utility2 = (Enums.Equipment)v.w;
        if (items.utility2 == Enums.Equipment.Kevlar)
        {
            hp += 10;
        }
        else if (items.utility2 == Enums.Equipment.Helmet)
        {
            hp += 10;
        }

        else if (items.utility2 == Enums.Equipment.MediPack)
        {
            items.amountMediKits = 2;
            skills.Add(Enums.Actions.Heal);
        }
            /*
        else if (items.utility2 == Enums.Equipment.SuicideBelt)
        {

        }

        else if (items.utility2 == Enums.Equipment.Scope)
        {

        }

        else if (items.utility2 == Enums.Equipment.Mine)
        {
            items.amountMines = 2;
        }
        else if (items.utility2 == Enums.Equipment.Rocks)
        {

        }
             * */
        else if (items.utility2 == Enums.Equipment.Mollotov)
        {
            items.amountMolotovs = 2;
            skills.Add(Enums.Actions.Molotov);
        }
        else if (items.utility2 == Enums.Equipment.Grenade)
        {
            items.amountGrenades = 1;
            skills.Add(Enums.Actions.Grenade);
        }
        else if (items.utility2 == Enums.Equipment.SmokeGreneade)
        {
            items.amountSmokes = 2;
            skills.Add(Enums.Actions.Smoke);
        }

        else if (items.utility2 == Enums.Equipment.Teargas)
        {
            items.amountTeargas = 2;
            skills.Add(Enums.Actions.Teargas);
        }
    }
Ejemplo n.º 32
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);
            WeaponFactory = new WeaponFactory(this);
            DoorFactory = new DoorFactory(this);
            RoomFactory = new RoomFactory(this);
            CollectableFactory = new CollectibleFactory(this);
            WallFactory = new WallFactory(this);
            EnemyFactory = new EnemyFactory(this);
            SkillEntityFactory = new SkillEntityFactory(this);
            NPCFactory = new NPCFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();
            DoorComponent = new DoorComponent();
            RoomComponent = new RoomComponent();
            HUDSpriteComponent = new HUDSpriteComponent();
            HUDComponent = new HUDComponent();
            InventoryComponent = new InventoryComponent();
            InventorySpriteComponent = new InventorySpriteComponent();
            ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this);
            EquipmentComponent = new EquipmentComponent();
            WeaponComponent = new WeaponComponent();
            BulletComponent = new BulletComponent();
            PlayerInfoComponent = new PlayerInfoComponent();
            WeaponSpriteComponent = new WeaponSpriteComponent();
            StatsComponent = new StatsComponent();
            EnemyAIComponent = new EnemyAIComponent();
            NpcAIComponent = new NpcAIComponent();

            CollectibleComponent = new CollectibleComponent();
            CollisionComponent = new CollisionComponent();
            TriggerComponent = new TriggerComponent();
            EnemyComponent = new EnemyComponent();
            NPCComponent = new NPCComponent();
            //QuestComponent = new QuestComponent();
            LevelManager = new LevelManager(this);
            SpriteAnimationComponent = new SpriteAnimationComponent();
            SkillProjectileComponent = new SkillProjectileComponent();
            SkillAoEComponent = new SkillAoEComponent();
            SkillDeployableComponent = new SkillDeployableComponent();
            SoundComponent = new SoundComponent();
            ActorTextComponent = new ActorTextComponent();
            TurretComponent = new TurretComponent();
            TrapComponent = new TrapComponent();
            ExplodingDroidComponent = new ExplodingDroidComponent();
            HealingStationComponent = new HealingStationComponent();
            PortableShieldComponent = new PortableShieldComponent();
            PortableStoreComponent = new PortableStoreComponent();
            ActiveSkillComponent = new ActiveSkillComponent();
            PlayerSkillInfoComponent = new PlayerSkillInfoComponent();

            Quests = new List<Quest>();

            #region Initialize Effect Components
            AgroDropComponent = new AgroDropComponent();
            AgroGainComponent = new AgroGainComponent();
            BuffComponent = new BuffComponent();
            ChanceToSucceedComponent = new ChanceToSucceedComponent();
            ChangeVisibilityComponent = new ChangeVisibilityComponent();
            CoolDownComponent = new CoolDownComponent();
            DamageOverTimeComponent = new DamageOverTimeComponent();
            DirectDamageComponent = new DirectDamageComponent();
            DirectHealComponent = new DirectHealComponent();
            FearComponent = new FearComponent();
            HealOverTimeComponent = new HealOverTimeComponent();
            InstantEffectComponent = new InstantEffectComponent();
            KnockBackComponent = new KnockBackComponent();
            TargetedKnockBackComponent = new TargetedKnockBackComponent();
            ReduceAgroRangeComponent = new ReduceAgroRangeComponent();
            ResurrectComponent = new ResurrectComponent();
            StunComponent = new StunComponent();
            TimedEffectComponent = new TimedEffectComponent();
            EnslaveComponent = new EnslaveComponent();
            CloakComponent = new CloakComponent();
            #endregion

            base.Initialize();
        }
    //Legt die Klasse fuer die Einheit fest
    public void setProf(int i)
    {
        prof = (Enums.Prof)i;
        armory = GameObject.Find("Armory").GetComponent<ArmoryComponent>();
        ManagerSystem managersys = (ManagerSystem) FindObjectOfType(typeof(ManagerSystem));
        items = this.GetComponent<InventoryComponent>();

        GameObject prefab = managersys.policePrefab;
        model = Instantiate(managersys.policePrefab);
        model.transform.SetParent(this.transform);
        model.transform.localPosition = prefab.transform.position;
        model.transform.localRotation = prefab.transform.rotation;
        model.transform.localScale = prefab.transform.localScale;

        anim = (Animator)model.GetComponent(typeof(Animator));

        Enums.Stance stance = Enums.Stance.Range1H;

        profession = (Enums.Prof)i;
        WeaponHolding weapons = (WeaponHolding)model.GetComponent(typeof(WeaponHolding));
        weapons.owner = this.gameObject;

        if (profession == Enums.Prof.Riot)
        {

            stance = Enums.Stance.MeleeRiot;
            weapons.initializeEquip(armory.p_Stick, armory.p_Riotshield, null, null , stance, Enums.Stance.None);
            GameObject tmp = weapons.leftHandObjectPrimary;
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.Pipe;
            items.amountTeargas = 4;
            hp += 20;
            skills.Add(Enums.Actions.Hit);
            skills.Add(Enums.Actions.Teargas);
            items.utility1 = Enums.Equipment.Teargas;

        }
        else if (profession == Enums.Prof.Soldier)
        {
            stance = Enums.Stance.Range2H;
            weapons.initializeEquip(armory.p_AssaultRifle, null, null, null, stance, Enums.Stance.None);
            GameObject tmp = weapons.leftHandObjectPrimary;
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.AssaultRifle;
            items.amountGrenades = 2;
            hp += 20;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);
            skills.Add(Enums.Actions.Grenade);

            items.utility1 = Enums.Equipment.Grenade;

        }

        else if (profession == Enums.Prof.Support)
        {
            stance = Enums.Stance.Range2H;
            weapons.initializeEquip(armory.p_AssaultRifle, null, armory.p_Pistol, null, stance, Enums.Stance.Range1H);
            GameObject tmp = weapons.leftHandObjectPrimary;

            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.AssaultRifle;

            tmp = weapons.leftHandObjectSecondary;
            items.secondary = tmp.GetComponent<WeaponComponent>();
            items.secondaryWeaponType = Enums.SecondaryWeapons.Pistol;
            items.amountMediKits = 2;
            hp += 20;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);
            skills.Add(Enums.Actions.ChangeWeapon);
            skills.Add(Enums.Actions.Heal);

            items.utility1 = Enums.Equipment.MediPack;
        }
            /*
        else if (profession == Enums.Prof.HeavyGunner)
        {
            GameObject tmp = Instantiate(armory.MG);
            tmp.transform.SetParent(transform);
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.MG;
            hp += 20;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);

            stance = Enums.Stance.Range2H;
        }
        if (profession == Enums.Prof.Sniper)
        {
            GameObject tmp = Instantiate(armory.Sniper);
            tmp.transform.SetParent(transform);
            items.primary = tmp.GetComponent<WeaponComponent>();
            items.primaryWeaponType = Enums.PrimaryWeapons.Sniper;

            tmp = Instantiate(armory.Pistol);
            tmp.transform.SetParent(transform);
            items.secondary = tmp.GetComponent<WeaponComponent>();
            items.secondaryWeaponType = Enums.SecondaryWeapons.Pistol;
            items.amountGrenades = 1;
            skills.Add(Enums.Actions.Shoot);
            skills.Add(Enums.Actions.Reload);
            skills.Add(Enums.Actions.ChangeWeapon);

            stance = Enums.Stance.Range2H;
        }
             * */
        anim.SetInteger(animId_iStance, (int)stance);
    }
Ejemplo n.º 34
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            AggregateFactory = new AggregateFactory(this);
            WeaponFactory = new WeaponFactory(this);
            DoorFactory = new DoorFactory(this);
            RoomFactory = new RoomFactory(this);
            CollectableFactory = new CollectibleFactory(this);
            WallFactory = new WallFactory(this);
            EnemyFactory = new EnemyFactory(this);

            // Initialize Components
            PlayerComponent = new PlayerComponent();
            LocalComponent = new LocalComponent();
            RemoteComponent = new RemoteComponent();
            PositionComponent = new PositionComponent();
            MovementComponent = new MovementComponent();
            MovementSpriteComponent = new MovementSpriteComponent();
            SpriteComponent = new SpriteComponent();
            DoorComponent = new DoorComponent();
            RoomComponent = new RoomComponent();
            HUDSpriteComponent = new HUDSpriteComponent();
            HUDComponent = new HUDComponent();
            InventoryComponent = new InventoryComponent();
            InventorySpriteComponent = new InventorySpriteComponent();
            ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this);
            EquipmentComponent = new EquipmentComponent();
            WeaponComponent = new WeaponComponent();
            BulletComponent = new BulletComponent();
            PlayerInfoComponent = new PlayerInfoComponent();
            WeaponSpriteComponent = new WeaponSpriteComponent();
            StatsComponent = new StatsComponent();
            EnemyAIComponent = new EnemyAIComponent();
            CollectibleComponent = new CollectibleComponent();
            CollisionComponent = new CollisionComponent();
            TriggerComponent = new TriggerComponent();
            EnemyComponent = new EnemyComponent();
            QuestComponent = new QuestComponent();
            LevelManager = new LevelManager(this);
            SpriteAnimationComponent = new SpriteAnimationComponent();
            SkillProjectileComponent = new SkillProjectileComponent();
            SkillAoEComponent = new SkillAoEComponent();
            SkillDeployableComponent = new SkillDeployableComponent();

            //TurretComponent = new TurretComponent();
            //TrapComponent = new TrapComponent();
            //PortableShopComponent = new PortableShopComponent();
            //PortableShieldComponent = new PortableShieldComponent();
            //MotivateComponent =  new MotivateComponent();
            //FallbackComponent = new FallbackComponent();
            //ChargeComponent = new ChargeComponent();
            //HealingStationComponent = new HealingStationComponent();
            //ExplodingDroidComponent = new ExplodingDroidComponent();

            base.Initialize();
        }