public void ShouldGiveMaxIncrease() { InventoryComponent.MaxCapacity = 10; InventoryComponent.Add(Resource, 4); Assert.AreEqual(6, InventoryComponent.MaxIncrease(Resource)); }
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); } }
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)); }
public override void Bind(InventoryComponent inventoryComponent) { BindInventoryComponent(inventoryComponent); BindComponentToDataDbWrite.RegisterInventoryInDatabase(_inventoryStructure, inventoryComponent); SetState(new BindState(InventoryBinding, DataInventory)); LoadIfNecessary(DataInventory); }
private void RelayInventoryEvent <T>(InventoryComponent component, T args) where T : EntityEventArgs { foreach (var equipped in component.GetAllHeldItems()) { RaiseLocalEvent(equipped, args, false); } }
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); }
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); } } }
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; } }
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)); }
/// <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(); } }
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); }
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); }
public void IncludesEntityGroup() { var component = InventoryComponent.Create(0); JsonElement deserialized = JsonSerializer.Deserialize <JsonElement>(component.Save()); Assert.Equal(InventoryComponent.ENTITY_GROUP, deserialized.GetProperty("EntityGroup").GetString()); }
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); // } } }
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); }
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(); } }
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); } }
public Item(int id, I18NString name, ItemData data, InventoryComponent inventory) { Data = data; Id = id; BaseName = name; Inventory = inventory; }
private void OnSlipAttemptEvent(EntityUid uid, InventoryComponent component, SlipAttemptEvent args) { if (component.TryGetSlotItem(EquipmentSlotDefines.Slots.SHOES, out ItemComponent? shoes)) { RaiseLocalEvent(shoes.Owner, args, false); } }
private void OnElectrocutionAttempt(EntityUid uid, InventoryComponent component, ElectrocutionAttemptEvent args) { foreach (var equipped in component.GetAllHeldItems()) { RaiseLocalEvent(equipped.Uid, args, false); } }
public override void Update(Entity entity, InventoryComponent inventory) { if (inventory.TryGetItem(_config.Item)) { entity.AddComponent <T>(); } }
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(); }
/// <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); } }
/// <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); }
/// <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(); }