public StateGoriyaWalk(Goriya _g, SpriteRenderer _renderer) { g = _g; renderer = _renderer; rb = g.GetComponent<Rigidbody>(); g.GoToMiddleOfTile(); cooldownTimer = (Random.value * g.maxWalkTime) + g.minWalkTime; do { direction = Utils.RandomDirection4(); nextCell = new Vector3((int)g.transform.position.x + (direction.x), (int)g.transform.position.y + (direction.y), 0); } while (Tile.Unwalkable(nextCell) || Utils.CollidingWithAnyWall(nextCell)); if(direction.x == 1) { g.current_direction = Direction.EAST; animation = g.walkRight; } else if(direction.x == -1) { g.current_direction = Direction.WEST; animation = g.walkLeft; } else if(direction.y == 1) { g.current_direction = Direction.NORTH; animation = g.walkUp; } else if(direction.y == -1) { g.current_direction = Direction.SOUTH; animation = g.walkDown; } }
public StateGoriyaBoomerangForward(Goriya _p, GoriyaBoomerang _b, float _speed) { b = _b; speed = _speed; p = _p; if (p.current_direction == Direction.NORTH) { direction_offset = new Vector3(0, 1, 0); } else if (p.current_direction == Direction.EAST) { direction_offset = new Vector3(1, 0, 0); } else if (p.current_direction == Direction.SOUTH) { direction_offset = new Vector3(0, -1, 0);; } else if (p.current_direction == Direction.WEST) { direction_offset = new Vector3(-1, 0, 0); } b.GetComponent <Rigidbody>().velocity = direction_offset * speed; }
//Changed this public StateGoriyaBoomerangReturning(Goriya _p, GoriyaBoomerang _b, float _speed, GameObject _pickedUpObject = null) { b = _b; speed = _speed; p = _p; pickedUpObject = _pickedUpObject; b.GetComponent<BoxCollider>().isTrigger = true; }
//Changed this public StateGoriyaBoomerangReturning(Goriya _p, GoriyaBoomerang _b, float _speed, GameObject _pickedUpObject = null) { b = _b; speed = _speed; p = _p; pickedUpObject = _pickedUpObject; b.GetComponent <BoxCollider>().isTrigger = true; }
private IEntity CreateEnemy(String type, Vector2 startingPos, Vector2 abstractPos) { IEntity newEnemy = new Keese(game, startingPos); switch (type) { case "Aquamentus": newEnemy = new Aquamentus(game, startingPos); break; case "BoggusBoss": newEnemy = new BoggusBoss(game, startingPos); break; case "MarioBoss": newEnemy = new MarioBoss(game, startingPos); break; case "Dodongo": newEnemy = new Dodongo(game, startingPos); break; case "Gel": newEnemy = new Gel(game, startingPos); break; case "Zol": newEnemy = new Zol(game, startingPos); break; case "Goriya": newEnemy = new Goriya(game, startingPos); break; case "Keese": newEnemy = new Keese(game, startingPos); break; case "Stalfos": newEnemy = new Stalfos(game, startingPos); break; case "Rope": newEnemy = new Rope(game, startingPos); break; case "Wallmaster": newEnemy = new WallMaster(game, startingPos, abstractPos); break; default: break; } return(newEnemy); }
public StateGoriyaBoomerangForward(Goriya _p, GoriyaBoomerang _b, float _speed) { b = _b; speed = _speed; p = _p; if (p.current_direction == Direction.NORTH) { direction_offset = new Vector3(0, 1, 0); } else if (p.current_direction == Direction.EAST) { direction_offset = new Vector3(1, 0, 0); } else if (p.current_direction == Direction.SOUTH) { direction_offset = new Vector3(0, -1, 0);; } else if (p.current_direction == Direction.WEST) { direction_offset = new Vector3(-1, 0, 0); } b.GetComponent<Rigidbody>().velocity = direction_offset * speed; }
public StateGoriyaThrowBoomerang(Goriya _g) { g = _g; g.GetComponent <Rigidbody>().velocity = Vector3.zero; weapon_instance = MonoBehaviour.Instantiate(g.goriyaBoomerangPrefab, g.transform.position, Quaternion.identity) as GameObject; weapon_instance.GetComponent <GoriyaBoomerang>().g = g; Vector3 direction_offset = Vector3.zero; Vector3 direction_eulerangle = Vector3.zero; if (g.current_direction == Direction.NORTH) { direction_offset = new Vector3(0, 1, 0); direction_eulerangle = new Vector3(0, 0, 90); } else if (g.current_direction == Direction.EAST) { direction_offset = new Vector3(1, 0, 0); direction_eulerangle = new Vector3(0, 0, 0); } else if (g.current_direction == Direction.SOUTH) { direction_offset = new Vector3(0, -1, 0); direction_eulerangle = new Vector3(0, 0, 270); } else if (g.current_direction == Direction.WEST) { direction_offset = new Vector3(-1, 0, 0); direction_eulerangle = new Vector3(0, 0, 180); } weapon_instance.transform.position += direction_offset; Quaternion new_weapon_rotation = new Quaternion(); new_weapon_rotation.eulerAngles = direction_eulerangle; weapon_instance.transform.rotation = new_weapon_rotation; weapon_instance.GetComponent <BoxCollider>().transform.rotation = new_weapon_rotation; }
public StateGoriyaWalk(Goriya _g, SpriteRenderer _renderer) { g = _g; renderer = _renderer; rb = g.GetComponent <Rigidbody>(); g.GoToMiddleOfTile(); cooldownTimer = (Random.value * g.maxWalkTime) + g.minWalkTime; do { direction = Utils.RandomDirection4(); nextCell = new Vector3((int)g.transform.position.x + (direction.x), (int)g.transform.position.y + (direction.y), 0); } while (Tile.Unwalkable(nextCell) || Utils.CollidingWithAnyWall(nextCell)); if (direction.x == 1) { g.current_direction = Direction.EAST; animation = g.walkRight; } else if (direction.x == -1) { g.current_direction = Direction.WEST; animation = g.walkLeft; } else if (direction.y == 1) { g.current_direction = Direction.NORTH; animation = g.walkUp; } else if (direction.y == -1) { g.current_direction = Direction.SOUTH; animation = g.walkDown; } }
public void UseItem() { Goriya.SetState(Goriya.itemLeft); Goriya.CurrentState.Start = true; Goriya.UseItem(); }
public void Move() { Goriya.SetState(Goriya.movingLeft); Goriya.CurrentState.Start = true; Goriya.Move(); }
private static void SpawnFromString(IRoom room, SpriteBatch spriteBatch, string spawnType, int offsetX, int offsetY, int gridX, int gridY) { int posX = offsetX + gridX * RoomConstants.TileLength; int posY = offsetY + gridY * RoomConstants.TileLength; Point position = new Point(posX, posY); IBlock blockType; INpc npcType; IItem itemType; IBackground backgroundType; switch (spawnType) { //Blocks case RoomConstants.Block: blockType = new Square(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.BrickTile: blockType = new BrickTile(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.GapTile: blockType = new GapTile(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.Fire: position.X += RoomConstants.TileLength / 2; blockType = new Fire(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.LadderTile: backgroundType = new LadderTile(spriteBatch, position); room.AllObjects.Spawn(backgroundType); break; case RoomConstants.Stairs: blockType = new Stairs(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.FishStatue: blockType = new FishStatues(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.DragonStatue: blockType = new DragonStatues(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.BlueGrass: backgroundType = new TileBlueGrass(spriteBatch, position); room.AllObjects.Spawn(backgroundType); break; case RoomConstants.Water: blockType = new TileWater(spriteBatch, position); room.AllObjects.Spawn(blockType); break; case RoomConstants.MovableBlock: blockType = new MovableSquare(spriteBatch, position); ((RoomWithMovableSquare)room).AddMovableSquare((MovableSquare)blockType); room.AllObjects.Spawn(blockType); break; //Npcs case RoomConstants.Aquamentus: position.Y += RoomConstants.TileLength / 2; npcType = new Aquamentus(spriteBatch, position, room.AllObjects); room.AllObjects.Spawn(npcType); break; case RoomConstants.Bat: npcType = new Bat(spriteBatch, position); room.AllObjects.Spawn(npcType); break; case RoomConstants.Goriya: npcType = new Goriya(spriteBatch, position, room.AllObjects); room.AllObjects.Spawn(npcType); break; case RoomConstants.Hand: npcType = new Hand(spriteBatch, position, ((RoomWallMaster)room).GetWallMasterRoomToJumpTo()); room.AllObjects.Spawn(npcType); break; case RoomConstants.Jelly: npcType = new Jelly(spriteBatch, position); room.AllObjects.Spawn(npcType); break; case RoomConstants.OldMan: position.X += RoomConstants.TileLength / 2; npcType = new OldMan(spriteBatch, position); room.AllObjects.Spawn(npcType); break; case RoomConstants.Skeleton: npcType = new Skeleton(spriteBatch, position); room.AllObjects.Spawn(npcType); break; case RoomConstants.SpikeTrap: npcType = new SpikeTrap(spriteBatch, position, room.AllObjects.GetPlayer(0)); room.AllObjects.Spawn(npcType); break; //Items case RoomConstants.Compass: itemType = new CompassItem(spriteBatch, position); room.AllObjects.Spawn(itemType); break; case RoomConstants.Heart: position.X += (int)(4 * RoomConstants.SpriteMultiplier); position.Y += (int)(4 * RoomConstants.SpriteMultiplier); itemType = new HeartItem(spriteBatch, position); room.AllObjects.Spawn(itemType); break; case RoomConstants.Key: itemType = new KeyItem(spriteBatch, position); room.AllObjects.Spawn(itemType); break; case RoomConstants.Map: itemType = new MapItem(spriteBatch, position); room.AllObjects.Spawn(itemType); break; case RoomConstants.Triforce: position.X += (int)(12 * RoomConstants.SpriteMultiplier); position.Y += (int)(2 * RoomConstants.SpriteMultiplier); itemType = new TriforceItem(spriteBatch, position); room.AllObjects.Spawn(itemType); break; case RoomConstants.HeartContainer: itemType = new HeartContainerItem(spriteBatch, position); room.AllObjects.Spawn(itemType); break; case RoomConstants.Bow: itemType = new BowItem(spriteBatch, position); room.AllObjects.Spawn(itemType); break; default: break; } }
private Entity LoadEnemy(Vector2 pos, string enemyType, string startDirection, string itemHeld) { Entity entity; Console.WriteLine("Initializing enemy at pos " + pos); if (startDirection.Equals("")) { startDirection = "right"; } // Parse direction (passed in as string) into Direction enumerable type Constants.Direction direction; switch (startDirection) { case "up": direction = Constants.Direction.UP; break; case "right": direction = Constants.Direction.RIGHT; break; case "down": direction = Constants.Direction.DOWN; break; case "left": direction = Constants.Direction.LEFT; break; default: // start direction not neccessary, default is right direction = Constants.Direction.RIGHT; break; } switch (enemyType) { case "aquamentus": entity = new Aquamentus(pos); break; case "bladetrap": entity = new BladeTrap(pos); break; case "gel": entity = new Gel(pos); break; case "goriya": entity = new Goriya(pos); break; case "keese": entity = new Keese(pos); break; case "rope": entity = new Rope(pos); break; case "stalfo": entity = new Stalfo(pos); if (itemHeld == "regularkey") { BasicSprite keySprite = ItemSpriteFactory.Instance.CreateRegularKey(); keySprite.offsets = new List <Vector2> { new Vector2(4, 0) }; entity.AddComponent(new Sprite(keySprite)); entity.GetComponent <StalfoMovement>().SetItemHeldTrue(); } break; case "wallmaster": entity = new WallMaster(pos, direction); break; default: Console.WriteLine("Level @ LoadEnemy(): Unrecognized enemyType \"" + enemyType + "\"!"); return(null); } var poof = new Poof(pos, entity); Scene.Add(entity); Scene.Add(poof); var transform = Root.GetComponent <Transform>(); transform.AddChild(poof); numEnemiesLeft++; enemyList.Add((Enemy)entity); return(entity); }
public StateGoriyaThrowBoomerang(Goriya _g) { g = _g; g.GetComponent<Rigidbody>().velocity = Vector3.zero; weapon_instance = MonoBehaviour.Instantiate(g.goriyaBoomerangPrefab, g.transform.position, Quaternion.identity) as GameObject; weapon_instance.GetComponent<GoriyaBoomerang>().g = g; Vector3 direction_offset = Vector3.zero; Vector3 direction_eulerangle = Vector3.zero; if (g.current_direction == Direction.NORTH) { direction_offset = new Vector3(0, 1, 0); direction_eulerangle = new Vector3(0, 0, 90); } else if (g.current_direction == Direction.EAST) { direction_offset = new Vector3(1, 0, 0); direction_eulerangle = new Vector3(0, 0, 0); } else if (g.current_direction == Direction.SOUTH) { direction_offset = new Vector3(0, -1, 0); direction_eulerangle = new Vector3(0, 0, 270); } else if (g.current_direction == Direction.WEST) { direction_offset = new Vector3(-1, 0, 0); direction_eulerangle = new Vector3(0, 0, 180); } weapon_instance.transform.position += direction_offset; Quaternion new_weapon_rotation = new Quaternion(); new_weapon_rotation.eulerAngles = direction_eulerangle; weapon_instance.transform.rotation = new_weapon_rotation; weapon_instance.GetComponent<BoxCollider>().transform.rotation = new_weapon_rotation; }
public void Wait() { Goriya.SetState(Goriya.idleRight); Goriya.CurrentState.Start = true; Goriya.Wait(); }