public JabControllerComponent(PhysicsComponent physicsComp, MeleeWeaponComponent meleeWeapon, Vector2f forwardPosition, Vector2f backwardPosition, double fullForwardTime, double fullBackwardTime, GameObject parent) : base(parent) { ForwardPosition = forwardPosition; BackwardPosition = backwardPosition; FullForwardTime = fullForwardTime; FullBackwardTime = fullBackwardTime; Time = 0; PhysicsComponent = physicsComp; MeleeWeapon = meleeWeapon; // Debug.Assert(FullBackwardTime > fullForwardTime); }
public static GameObject CreateMeleeWeapon(GameObject player) { GameObject gameObject = new GameObject(); Vector2f offset = new Vector2f(meleeWeaponConfigFileParser.GetAsFloat("OffsetX"), meleeWeaponConfigFileParser.GetAsFloat("OffsetY")); MeleeWeaponComponent meleeWeaponComponent = new MeleeWeaponComponent(player, offset, gameObject); gameObject.AddComponent(meleeWeaponComponent); GameState.GameObjects.Add(gameObject); meleeWeaponComponent.AttackDelay = meleeWeaponConfigFileParser.GetAsFloat("AttackDelay"); return gameObject; }
/// <summary> /// Creates a new jab attack instance /// </summary> public static GameObject CreateJab(GameObject attacker, MeleeWeaponComponent meleeWeapon, Vector2f position, int xdirection) { float width = jabConfigFileParser.GetAsFloat("CollisionWidth"); float height = jabConfigFileParser.GetAsFloat("CollisionHeight"); float damage = jabConfigFileParser.GetAsFloat("Damage"); float forwardX = jabConfigFileParser.GetAsFloat("ForwardX"); float backwardX = jabConfigFileParser.GetAsFloat("BackwardX"); float forwardTime = jabConfigFileParser.GetAsFloat("ForwardTime"); float backwardTime = jabConfigFileParser.GetAsFloat("BackwardTime"); GameObject gameObject = new GameObject(); GameState.GameObjects.Add(gameObject); gameObject.Position = position; PhysicsComponent physicsComp = PhysicsMgr.MakeNewComponent(gameObject, width, height, PhysicsManager.PlayerCategory, PhysicsManager.EnemyCategory | PhysicsManager.MapCategory, BodyType.Kinematic); physicsComp.Body.GravityScale = 0.0f; physicsComp.Body.IsSensor = true; gameObject.AddComponent(physicsComp); AttackComponent attackComp = new AttackComponent(attacker, damage, gameObject); gameObject.AddComponent(attackComp); SpriteRenderComponent renderComp = RenderMgr.MakeNewSpriteComponent(gameObject, SwordTexture); renderComp.WorldPosition = position; renderComp.WorldWidth = width; renderComp.WorldHeight = height; renderComp.ZIndex = 100; gameObject.AddComponent(renderComp); JabControllerComponent scc = new JabControllerComponent(physicsComp, meleeWeapon, new Vector2f(forwardX * xdirection, 0), new Vector2f(backwardX * xdirection, 0), forwardTime, backwardTime, gameObject); gameObject.AddComponent(scc); RectRenderComponent collisionRect = new RectRenderComponent( jabConfigFileParser.GetAsFloat("CollisionWidth"), jabConfigFileParser.GetAsFloat("CollisionHeight"), new Color(255, 0, 0, 100), RenderMgr, gameObject); RenderMgr.Components.Add(collisionRect); gameObject.AddComponent(collisionRect); return gameObject; }
public WeaponHoldingComponent(MeleeWeaponComponent meleeWeaponComponent, GunWeaponComponent gunWeaponComponent, GameObject parent) : base(parent) { MeleeWeaponComponent = meleeWeaponComponent; GunWeaponComponent = gunWeaponComponent; }