private void Awake() { if (instance == null) { instance = this; } }
public void NPCFactoryCreate() { ItemsFactory wfactory = new ItemsFactory(); NPCFactory factory = new NPCFactory(wfactory); var creationProfile = new EntityProfile(10, EntityOccupation.Fisherman, EntityRace.None, 10); IEntity entity = factory.Create(creationProfile); }
private void Awake() { _factory = GameObject.Find("Factory"); _playerFactory = _factory.GetComponent <PlayerFactory>(); _npcFactory = _factory.GetComponent <NPCFactory>(); _itemFactory = _factory.GetComponent <ItemFactory>(); _bodyFactory = _factory.GetComponent <BodyFactory>(); }
public void Init() { NPCActionChoiceFactory NPCChoiceFactory = new NPCActionChoiceFactory(); NPCActionFactory NPCActionFactory = new NPCActionFactory(NPCChoiceFactory); NPCFactory NPCFactory = new NPCFactory(NPCActionFactory); m_npcList = NPCFactory.GetInitailizedNPCList(); }
/// <summary> /// Test original NPC generation. /// NB: Will use about 0,1 MB per NPC. /// </summary> private void TestOriginal() { INPCFactory npcFac = new NPCFactory(); List <INPC> allNPCs = CreateNPCs(npcFac); AnimateAll(allNPCs); DoneWithTest("(original)"); }
public IActionResult GetName(int npcId) { NPC npcData = NPCFactory.GetNPC(npcId); return(Json(new { Name = npcData.Name, Id = npcData.Id })); }
public IActionResult GetNPC(int npcId) { NPC npcInfo = NPCFactory.GetNPC(npcId); npcInfo.RelatedQuestsInfo = npcInfo.RelatedQuests?.Select(c => QuestFactory.GetQuest(c)).Where(c => c != null).Select(c => new QuestName() { id = c.Id, name = c.Name }).ToArray(); return(Json(npcInfo)); }
private void Awake() { enemyFactory = NPCFactory.GetFactory(NPCType.ENEMY); friendlyFactory = NPCFactory.GetFactory(NPCType.FRIEND); flyingEnemy = enemyFactory.GetEnemy(EnemyType.FLYING); walkingEnemy = enemyFactory.GetEnemy(EnemyType.WALKING); flyingFriend = friendlyFactory.GetFriendly(FriendType.FLYING); walkingFriend = friendlyFactory.GetFriendly(FriendType.WALKING); }
void Awake() { if (Instance == null) { Instance = this; } else { Destroy(Instance); } }
// Start is called before the first frame update void Start() { gameController = GameObject.Find("GameController").GetComponent <GameController>(); npcFactoryCreator = new ShopKeeperFactory(); creatorIsShopKeeper = true; canSpawn1 = true; canSpawn2 = true; canSpawn3 = true; canSpawn4 = true; spawnIndex = 0; }
// The idea behind the abstract factory pattern is to delegate the creation of a family of objects // to another class so that the client does not need to deal with that responsibility. // A family of objects can be books and publishers or motorbikes and scooters //Client //This is a class which use AbstractFactory and AbstractProduct interfaces to create a family of related objects. //AbstractFactory //This is an interface which is used to create abstract product //ConcreteFactory //This is a class which implements the AbstractFactory interface to create concrete products. //AbstractProduct //This is an interface which declares a type of product. //ConcreteProduct //This is a class which implements the AbstractProduct interface to create product. // First we need to create the abstract product and concrete products // Then we create the abstract factory and concrete factories. // And finally implement everything into the client. static void Main(string[] args) { // Not always necessary to create a producer/client. #region Game Example // Alternative to this would be to create a factory for flying and walking. NPCFactory enemyFactory = NPCFactoryProducer.Producer("EmenyFactory"); var flyingEnemy = enemyFactory.GetEnemy(EnemyTypes.Flying); NPCFactory friendlyFactory = NPCFactoryProducer.Producer("FriendlyFactory"); var walkingFriendly = friendlyFactory.GetFriendly(FriendlyTypes.Walking); flyingEnemy.Attack(); walkingFriendly.Move(); #endregion #region Car Example // Class can be configured in the config file or property settings. var fordFactory = CarProducer.ProduceFactory(); var fordSedan = fordFactory.CreateSedan(); var fordCoupe = fordFactory.CreateCoupe(); #endregion #region Auto IAutoFactory fac = AutoFactory.ProduceFactory(); var car = fac.CreateSportsCar(); car.TurnOn(); car.TurnOff(); car = fac.CreateLuxuryCar(); car.TurnOn(); car.TurnOff(); car = fac.CreateEconomyCar(); car.TurnOn(); car.TurnOff(); #endregion Console.ReadKey(); }
//Decides if it should spawn or not and how many npcs void DoRandomSpawn() { //50% chance if (Random.value > 0.5f) { var amountToSpawn = Random.Range(1, 4); for (int i = 0; i < amountToSpawn; i++) { switch (npcToSpawn) { case NPC.xeno: NPCFactory.SpawnXenomorph(transform.position, transform.parent); break; } } } }
public World(IAccountRepository accountRepository, INPCRepository npcRepository, IPlayerRepository playerRepository, IServerStatsRepository statsRepository, IAbilityRepository abilityRepository) { m_accountRepository = accountRepository; m_npcRepository = npcRepository; m_playerRepository = playerRepository; m_statsRepository = statsRepository; m_abilityRepository = abilityRepository; m_npcFactory = new NPCFactory(npcRepository); m_zones = BuildZones(m_npcRepository); m_cpuCounter.CategoryName = "Processor"; m_cpuCounter.CounterName = "% Processor Time"; m_cpuCounter.InstanceName = "_Total"; m_fiber.Enqueue(Update, false); //m_fiber.Enqueue(StatsUpdate, false); }
public IActionResult GetQuest(int questId) { var quest = QuestFactory.GetQuest(questId); if (quest.RequirementToStart.NPCId.HasValue) { quest.RequirementToStart.NPCInfo = NPCFactory.GetNPC(quest.RequirementToStart.NPCId.Value); } if (quest.RequirementToComplete.NPCId.HasValue) { quest.RequirementToComplete.NPCInfo = NPCFactory.GetNPC(quest.RequirementToComplete.NPCId.Value); } if (quest == null) { return(NotFound()); } return(Json(quest)); }
void Awake() { if (!(prefabs && prefabs.IsValid)) { Destroy(gameObject); return; } cam = Camera.main.GetComponent <ThirdPersonCamera>(); if (!(cam && loseScreen && winScreen)) { Destroy(gameObject); return; } Grid = GetComponent <AI.AStar.Grid>(); pathFinder = GetComponent <PathFinder>(); PathRequestManager = new PathRequestManager(pathFinder); npcFactory = new NPCFactory(prefabs.NPC, PathRequestManager); BuildingManager = new BuildingManager(new BuildingFactory(prefabs.Buildings, prefabs.PressurePlate, Grid)); waypointFactory = new PatrolWaypointFactory(prefabs.PatrolWaypoint, Grid); for (int i = 0; i < gameStages.Length; ++i) { if (gameStages[i] == null) { continue; } gameStages[i].Game = this; stages.Add(gameStages[i].StageName, gameStages[i]); } if (initialStage != null) { CurrentStage = initialStage; } }
public Zone(int zoneID, INPCRepository npcRepository, NPCFactory npcFactory, MapData mapData) { ID = zoneID; m_npcRepository = npcRepository; m_npcFactory = npcFactory; m_mapData = mapData; m_npcSpawns = LoadZoneNPCSpawns(); m_npcArray = new NPCInstance[m_npcSpawns.Count]; for (int i = 0; i < m_npcSpawns.Count; i++) { NPCInstance npcInstance = npcFactory.CreateNPC(m_fiber, m_npcSpawns[i], mapData); m_npcs.Add(npcInstance.ID, npcInstance); m_npcArray[i] = npcInstance; } m_playerArray = Enumerable.Empty <PlayerPeer>().ToArray(); m_fiber.Enqueue(Update); }
public IActionResult GetFrame(int npcId) { NPC npcData = NPCFactory.GetNPC(npcId); if (npcData.IsComponentNPC ?? false) { return(File(AvatarFactory.Render(new Character() { AnimationName = "stand1", ItemEntries = npcData.ComponentIds .Concat(new int[] { npcData.ComponentSkin ?? 2000, (npcData.ComponentSkin ?? 2000) + 10000 }) .Select(c => new AvatarItemEntry() { ItemId = c, Region = Region, Version = Version }) .ToArray() }).ImageToByte(Request), "image/png")); } if (!npcData.Framebooks.ContainsKey("stand")) { return(NotFound()); } FrameBook standing = npcData.GetFrameBook("stand").First(); if (standing == null) { return(NotFound()); } Frame firstFrame = standing.frames.First(); if (firstFrame == null || firstFrame.Image == null) { return(NotFound()); } return(File(firstFrame.Image.ImageToByte(Request), "image/png")); }
void Awake() { PlatformType = PlatformType.Local; #if (UNITY_ANDROID && !UNITY_EDITOR) #if ANDROID_OPPO PlatformType = PlatformType.OPPO; #elif ANDROID_UC PlatformType = PlatformType.UC; #elif ANDROID_XIAOMI PlatformType = PlatformType.MI; #elif ANDROID_TENCENT PlatformType = PlatformType.Tencent; #endif #endif TraceUtil.Log(PlatformType); Application.targetFrameRate = 60; m_instance = this; this.m_timedSendPackage = GetComponent <TimedSendPackage>(); this.m_playerFactory = GetComponent <PlayerFactory>(); //this.m_monsterFactory = GetComponent<MonsterFactory>(); this.m_damageFactory = GetComponent <DamageFactory>(); this.m_trapFactory = GetComponent <TrapFactory>(); this.m_portalFactory = GetComponent <PortalFactory>(); this.m_npcFactory = GetComponent <NPCFactory>(); this.m_SenceAudioFactory = GetComponent <SenceAudioFactory>(); //this.m_bulletFactory = GetComponent<BulletFactory>(); this.m_actionEffectFactory = GetComponent <ActionEffectFactory>(); LoginManager.Instance.Init91(); this.RegisterEventHandler(); this.m_gameSettings = GetComponent <GameSettings>(); //打印按钮Id TraceUtil.Log(SystemModel.Common, TaskBtnManager.Instance.GetBtnId()); }
public IActionResult Render(int npcId, string framebook, int frame = 0) { NPC npcData = NPCFactory.GetNPC(npcId); if (npcData.IsComponentNPC ?? false) { return(File(AvatarFactory.Render(new Character() { AnimationName = framebook, FrameNumber = frame, ItemEntries = npcData.ComponentIds .Concat(new int[] { npcData.ComponentSkin ?? 2000, (npcData.ComponentSkin ?? 2000) + 10000 }) .Select(c => new AvatarItemEntry() { ItemId = c, Region = Region, Version = Version }) .ToArray() }).ImageToByte(Request), "image/png")); } FrameBook standing = npcData.GetFrameBook(framebook).First(); if (standing == null) { return(NotFound()); } Frame firstFrame = standing.frames.ElementAt(frame % standing.frames.Count()); if (firstFrame == null || firstFrame.Image == null) { return(NotFound()); } return(File(firstFrame.Image.ImageToByte(Request), "image/png")); }
void Awake() { Instance = this; }
public override void Initialize() { base.Initialize(); spriteBatch = new SpriteBatch(this.ScreenManager.GraphicsDevice); ecsInstance = new ECSInstance(); ComponentMapper.ecs_instance = ecsInstance; gameContainer = ScreenManager.GameContainer; //setup factories AnimationFactory.ecs_instance = ecsInstance; ActionFactory.ECSInstance = ecsInstance; EntityFactory.ecs_instance = ecsInstance; EntityFactory.GameContainer = gameContainer; UtilFactory.ecs_instance = ecsInstance; UtilFactory.Container = gameContainer; UIFactory.ecs_instance = ecsInstance; UIFactory.Container = gameContainer; //create & register systems //register update systems playerInputSystem = ecsInstance.system_manager.set_system(new PlayerInputSystem(), new Position(), new Velocity(), new Controllable()); cameraFocusSystem = ecsInstance.system_manager.set_system(new CameraFocusSystem(), new CameraFocus(), new Position()); mousePointerSystem = ecsInstance.system_manager.set_system(new MousePointerSystem(), new Position(), new MousePosition()); behaviorSystem = ecsInstance.system_manager.set_system(new BehaviorSystem(), new AiBehavior()); mapCollisionSystem = ecsInstance.system_manager.set_system(new MapCollisionSystem(), new MapCollidable()); projectileSystem = ecsInstance.system_manager.set_system(new ProjectileSystem(), new Projectile()); meleeSystem = ecsInstance.system_manager.set_system(new MeleeSystem(), new MeleeAction()); attackSystem = ecsInstance.system_manager.set_system(new AttackSystem(), new Attack()); damageSystem = ecsInstance.system_manager.set_system(new DamageSystem(), new Damage()); healthSystem = ecsInstance.system_manager.set_system(new HealthSystem(), new Health()); lifeSystem = ecsInstance.system_manager.set_system(new LifeSystem(), new Life()); victorySystem = ecsInstance.system_manager.set_system(new AwardSystem(), new Award()); uiUpdateSystem = ecsInstance.system_manager.set_system(new UIUpdateSystem(), new UserInterface()); triggerSystem = ecsInstance.system_manager.set_system(new TriggerSystem(), new Trigger()); actionSystem = ecsInstance.system_manager.set_system(new ActionSystem(), new VAction()); lightSystem = ecsInstance.system_manager.set_system(new LightSystem(), new Light(), new Position()); targetingSystem = ecsInstance.system_manager.set_system(new TargetingSystem(), new Target()); //audio systems audioSystem = ecsInstance.system_manager.set_system(new AudioSystem(gameContainer), new Audio()); //register render systems spriteRenderSystem = ecsInstance.system_manager.set_system(new SpriteRenderSystem(gameContainer), new Position(), new Sprite()); animationSystem = ecsInstance.system_manager.set_system(new AnimationSystem(gameContainer), new Character(), new Position()); mapSystem = ecsInstance.system_manager.set_system(new MapSystem(gameContainer), new GameMap()); healthBarRenderSystem = ecsInstance.system_manager.set_system(new HealthBarRenderSystem(gameContainer), new Health()); floatingTextDisplaySystem = ecsInstance.system_manager.set_system(new FloatingTextDisplaySystem(gameContainer), new FloatingText()); quadTreeDebugRenderSystem = ecsInstance.system_manager.set_system(new QuadTreeDebugRenderSystem(gameContainer), new Position(), new AiBehavior()); uiDrawSystem = ecsInstance.system_manager.set_system(new UIDrawSystem(gameContainer.ContentManager, gameContainer.SpriteBatch), new UserInterface()); //any additional component registration ecsInstance.component_manager.register_component_type(new Vaerydian.Components.Graphical.ViewPort()); ecsInstance.component_manager.register_component_type(new MousePosition()); ecsInstance.component_manager.register_component_type(new Heading()); ecsInstance.component_manager.register_component_type(new MapDebug()); ecsInstance.component_manager.register_component_type(new Transform()); ecsInstance.component_manager.register_component_type(new SpatialPartition()); ecsInstance.component_manager.register_component_type(new Interactable()); ecsInstance.component_manager.register_component_type(new BoundingPolygon()); ecsInstance.component_manager.register_component_type(new Item()); ecsInstance.component_manager.register_component_type(new Equipment()); //ecsInstance.component_manager.register_component_type(new Armor()); //ecsInstance.component_manager.register_component_type(new Weapon()); ecsInstance.component_manager.register_component_type(new Statistics()); ecsInstance.component_manager.register_component_type(new Skills()); ecsInstance.component_manager.register_component_type(new Knowledges()); ecsInstance.component_manager.register_component_type(new Factions()); ecsInstance.component_manager.register_component_type(new Award()); ecsInstance.component_manager.register_component_type(new Information()); ecsInstance.component_manager.register_component_type(new Aggrivation()); ecsInstance.component_manager.register_component_type(new Audio()); ecsInstance.component_manager.register_component_type(new APath()); ecsInstance.component_manager.register_component_type(new Light()); //initialize all systems ecsInstance.system_manager.initialize_systems(); //create the entity factory npcFactory = new NPCFactory(ecsInstance); mapFactory = new MapFactory(ecsInstance, gameContainer); //setup local geometrymapper geometryMapper = new ComponentMapper(new GeometryMap(), ecsInstance); }
//private ConcurrentDictionary<int, CCharacter> Bots { get; set; } public BotQueenBackgroundThread(FightManager fightManager, NPCFactory npcFactory) { FightManager = fightManager; _NPCFactory = npcFactory; }
// Update is called once per frame void Update() { if (creatorIsShopKeeper) { gameController.npcType.text = "NPC Type: ShopKeeper"; if (NPCTypeNum == 0) { gameController.npcSubType.text = "NPC Sub-Type: Blacksmith"; } else { gameController.npcSubType.text = "NPC Sub-Type: Swordsmith"; } } else { gameController.npcType.text = "NPC Type: Citizen"; if (NPCTypeNum == 0) { gameController.npcSubType.text = "NPC Sub-Type: Townsman"; } else { gameController.npcSubType.text = "NPC Sub-Type: Townswoman"; } } if (Input.GetKeyDown(KeyCode.T)) { if (NPCTypeNum <= 0) { NPCTypeNum = 0; gameController.npcSubType.text = "NPC Sub-Type: ShopKeeper"; } else if (NPCTypeNum >= 0) { NPCTypeNum--; } } if (Input.GetKeyDown(KeyCode.Y)) { if (NPCTypeNum >= 1) { NPCTypeNum = 1; } else if (NPCTypeNum <= 0) { NPCTypeNum++; } } if (Input.GetKeyDown(KeyCode.Tab)) { if (creatorIsShopKeeper) { npcFactoryCreator = new CitizenFactory(); creatorIsShopKeeper = false; } else { npcFactoryCreator = new ShopKeeperFactory(); creatorIsShopKeeper = true; } } if (Input.GetKeyDown(KeyCode.Alpha1)) { spawnIndex = 0; if (creatorIsShopKeeper && canSpawn1) { SpawnNPC(shopKeeperType[NPCTypeNum]); npc1IsSpawned = true; canSpawn1 = false; } if (!creatorIsShopKeeper && canSpawn1) { SpawnNPC(citizenType[NPCTypeNum]); npc1IsSpawned = true; canSpawn1 = false; } } if (Input.GetKeyDown(KeyCode.Alpha2)) { spawnIndex = 1; if (creatorIsShopKeeper && canSpawn2) { SpawnNPC(shopKeeperType[NPCTypeNum]); npc2IsSpawned = true; canSpawn2 = false; } if (!creatorIsShopKeeper && canSpawn2) { SpawnNPC(citizenType[NPCTypeNum]); npc2IsSpawned = true; canSpawn2 = false; } } if (Input.GetKeyDown(KeyCode.Alpha3)) { spawnIndex = 2; if (creatorIsShopKeeper && canSpawn3) { SpawnNPC(shopKeeperType[NPCTypeNum]); npc3IsSpawned = true; canSpawn3 = false; } if (!creatorIsShopKeeper && canSpawn3) { SpawnNPC(citizenType[NPCTypeNum]); npc3IsSpawned = true; canSpawn3 = false; } } if (Input.GetKeyDown(KeyCode.Alpha4)) { spawnIndex = 3; if (creatorIsShopKeeper && canSpawn4) { SpawnNPC(shopKeeperType[NPCTypeNum]); npc4IsSpawned = true; canSpawn4 = false; } if (!creatorIsShopKeeper && canSpawn4) { SpawnNPC(citizenType[NPCTypeNum]); npc4IsSpawned = true; canSpawn4 = false; } } }
void Awake() { _npcFactory = GetComponent <NPCFactory>(); }
/// <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(); MatchingPuzzleComponent = new MatchingPuzzleComponent(); pI = new PlayerInfo(); 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(); PsiOrFatigueRegenComponent = new PsiOrFatigueRegenComponent(); 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(); }
protected override void process(Entity entity) { Position position = (Position)p_PositionMapper.get(entity); Velocity velocity = (Velocity)p_VelocityMapper.get(entity); Heading heading = (Heading)p_HeadingMapper.get(entity); Position mPosition = (Position)p_PositionMapper.get(p_Mouse); Transform transform = (Transform)p_TransformMapper.get(entity); Character character = (Character)p_CharacterMapper.get(entity); SpatialPartition spatial = (SpatialPartition)p_SpatialMapper.get(p_Spatial); if (p_FirstRun) { spatial.QuadTree.setContentAtLocation(entity, position.Pos); p_LastNode = spatial.QuadTree.locateNode(position.Pos + position.Offset); p_FirstRun = false; } Vector2 pos = position.Pos; float vel = velocity.Vel; Vector2 head = heading.getHeading(); //reset direction int dirCount = 0; //reset animation //sprite.Column = 0; p_Moved = false; //toggle light? if (InputManager.isKeyToggled(Keys.L)) { Light light = (Light)p_LightMapper.get(p_Mouse); if (light.IsEnabled) { light.IsEnabled = false; } else { light.IsEnabled = true; } } //move up? if (InputManager.isKeyPressed(Keys.W)) { Vector2 dir = new Vector2(0, -1); head += dir; dirCount++; //sprite.Y = MOVE_UP; //sprite.X = p_Movement.updateFrame(ecs_instance.ElapsedTime); p_Moved = true; } //move down? if (InputManager.isKeyPressed(Keys.S)) { Vector2 dir = new Vector2(0, 1); head += dir; dirCount++; //sprite.Y = MOVE_DOWN; //sprite.X = p_Movement.updateFrame(ecs_instance.ElapsedTime); p_Moved = true; } //move left? if (InputManager.isKeyPressed(Keys.A)) { Vector2 dir = new Vector2(-1, 0); head += dir; dirCount++; //sprite.Y = MOVE_LEFT; //sprite.X = p_Movement.updateFrame(ecs_instance.ElapsedTime); p_Moved = true; } //move right? if (InputManager.isKeyPressed(Keys.D)) { Vector2 dir = new Vector2(1, 0); head += dir; dirCount++; //sprite.Y = MOVE_RIGHT; //sprite.X = p_Movement.updateFrame(ecs_instance.ElapsedTime); p_Moved = true; } //move according to the correct speed if (dirCount > 1) { position.Pos = pos + head * vel * (float)Math.Sqrt(2) / 2; } else { position.Pos = pos + head * vel; } /* * Vector2 test = (mPosition.Pos + mPosition.Offset) - pos; * test.Normalize(); * * float angle = VectorHelper.getAngle(new Vector2(1,0), test); * * if (angle >= 0.393f && angle < 1.178f) { sprite.Row = MOVE_UPRIGHT; } * else if (angle >= 1.178f && angle < 1.963f) { sprite.Row = MOVE_UP; } * else if (angle >= 1.963f && angle < 2.749f) { sprite.Row = MOVE_UPLEFT; } * else if (angle >= 2.749f && angle < 3.534f) { sprite.Row = MOVE_LEFT; } * else if (angle >= 3.534f && angle < 4.320f) { sprite.Row = MOVE_DOWNLEFT; } * else if (angle >= 4.320f && angle < 5.105f) { sprite.Row = MOVE_DOWN; } * else if (angle >= 5.105f && angle < 5.890f) { sprite.Row = MOVE_DOWNRIGHT; } * else if (angle >= 5.890f || angle < .393f) { sprite.Row = MOVE_RIGHT; } * * if(p_Moved) * sprite.Column = p_Movement.updateFrame(ecs_instance.ElapsedTime); */ if (p_Moved) { character.CurrentAnimtaion = "MOVING"; } //transform.Rotation = getAngle(pos, mPosition.getPosition()); /* * if (InputManager.isLeftButtonClicked()) * { * EntityFactory ef = new EntityFactory(ecs_instance); * * Vector2 dir = mPosition.getPosition() + mPosition.Offset - new Vector2(16) - pos; * * dir.Normalize(); * * Transform trans = new Transform(); * trans.Rotation = -VectorHelper.getAngle(new Vector2(1, 0), dir); * trans.RotationOrigin = new Vector2(16); * * ef.createCollidingProjectile(pos + dir * 16, dir, 10f, 1000, ef.createLight(true, 35, new Vector3(pos + position.Offset, 10), 0.7f, Color.Purple.ToVector4()), trans, entity); * * UtilFactory uf = new UtilFactory(ecs_instance); * uf.createSound("audio\\effects\\fire", true,0.5f); * }*/ p_LastFired += ecs_instance.ElapsedTime; if (InputManager.isLeftButtonDown() && (p_LastFired >= 3 * p_FireRate)) { Target target = (Target)p_TargetMapper.get(p_Target); if (target.Active) { p_LastFired = 0; Position targetPos = (Position)p_PositionMapper.get(p_Target); Vector2 dir = targetPos.Pos + targetPos.Offset - new Vector2(16) - pos; dir.Normalize(); Transform trans = new Transform(); trans.Rotation = -VectorHelper.getAngle(new Vector2(1, 0), dir); trans.RotationOrigin = new Vector2(0, 16); UtilFactory.createMeleeAction(pos + dir * 16, dir, trans, entity); } } if (InputManager.isRightButtonDown() && (p_LastFired >= p_FireRate)) { Target target = (Target)p_TargetMapper.get(p_Target); if (target.Active) { p_LastFired = 0; Position targetPos = (Position)p_PositionMapper.get(p_Target); Vector2 dir = targetPos.Pos + targetPos.Offset - new Vector2(16) - pos; //Vector2 dir = mPosition.Pos + mPosition.Offset - new Vector2(16) - pos;// +new Vector2(-20 + (float)rand.NextDouble() * 40, -20 + (float)rand.NextDouble() * 40); dir = VectorHelper.rotateVectorRadians(dir, -0.08726f + (float)rand.NextDouble() * 0.1745f); dir.Normalize(); Transform trans = new Transform(); trans.Rotation = -VectorHelper.getAngle(new Vector2(1, 0), dir); trans.RotationOrigin = new Vector2(16); EntityFactory.createCollidingProjectile(pos + dir * 16, dir, 10f, 1000, EntityFactory.createLight(true, 2, new Vector3(pos + position.Offset, 10), 0.7f, Color.OrangeRed.ToVector4()), trans, entity); UtilFactory.createSound("audio\\effects\\fire", true, 0.5f); } } if (InputManager.isKeyToggled(Keys.B)) { if (!p_StatWindowOpen) { p_StatWindow = UIFactory.createStatWindow(entity, new Point(100, 100), new Point(300, 315), 20); p_StatWindowOpen = true; } else { ecs_instance.delete_entity(p_StatWindow); p_StatWindowOpen = false; } } if (InputManager.isKeyToggled(Keys.I)) { if (!p_InvWindowOpen) { p_InvWindow = UIFactory.createInventoryWindow(entity, new Point(300, 100), new Point(300, 300), 20, 10, 10); p_InvWindowOpen = true; } else { ecs_instance.delete_entity(p_InvWindow); p_InvWindowOpen = false; } } if (InputManager.isKeyToggled(Keys.R)) { List <Entity> locals = spatial.QuadTree.findAllWithinRange(pos, 300); if (locals.Count > 1) { Target target = (Target)p_TargetMapper.get(p_Target); Sprite sprite = (Sprite)p_SpriteMapper.get(p_Target); sprite.Visible = true; target.Active = true; Entity closest = null; float min = float.MaxValue; for (int i = 0; i < locals.Count; i++) { if (locals[i] == entity) { continue; } Position p = (Position)p_PositionMapper.get(locals[i]); if (p == null) { continue; } float dist = Vector2.Distance(p.Pos, position.Pos); if (dist < min) { closest = locals[i]; min = dist; } } target.TargetEntity = closest; } } if (!p_Moved) { p_Movement.reset(); character.CurrentAnimtaion = "IDLE"; } else { if (p_LastNode != null) { p_LastNode.Contents.Remove(entity); } p_LastNode = spatial.QuadTree.setContentAtLocation(entity, pos + new Vector2(16, 16)); } //TEST FUNCTIONS PAST HERE if (InputManager.isKeyPressed(Keys.Up)) { transform.Rotation += 0.1f; } if (InputManager.isKeyPressed(Keys.Down)) { transform.Rotation -= 0.1f; } if (InputManager.isKeyPressed(Keys.Left)) { transform.RotationOrigin = new Vector2(16, 32); } if (InputManager.isKeyPressed(Keys.Right)) { transform.RotationOrigin = new Vector2(0); } if (InputManager.isKeyPressed(Keys.P)) { NPCFactory ef = new NPCFactory(ecs_instance); ef.createFollower(mPosition.Pos + mPosition.Offset - new Vector2(16), entity, rand.Next(50, 300)); } if (InputManager.isKeyToggled(Keys.O)) { NPCFactory ef = new NPCFactory(ecs_instance); //ef.createBatEnemy(mPosition.Pos + mPosition.Offset - new Vector2(16),15); CharacterDef cDef = GameConfig.CharacterDefs["BAT"]; cDef.SkillLevel = 15; ef.createCharacter(cDef, mPosition.Pos + mPosition.Offset - new Vector2(16)); } if (InputManager.isKeyToggled(Keys.U)) { ActionDef def = GameConfig.ActionDefs["TEST_DMG"]; ActionFactory.createAction(def, entity, entity); } }
public IActionResult List([FromQuery] int startAt = 0, [FromQuery] int count = int.MaxValue, [FromQuery] string searchFor = "") => Json(NPCFactory.GetNPCs(startAt, count, searchFor));
public BotQueenMoveDeployBackgroundThread(FightManager fightManager, NPCFactory npcFactory) { FightManager = fightManager; }
protected override void initialize() { l_LifeMapper = new ComponentMapper(new Life(), ecs_instance); l_NPCFactory = new NPCFactory(ecs_instance); }