public CharacterScript(double maxLife, MovementScript movementScript, LookScript lookScript, WeaponScript weaponScript, GameObject weapon, GameObject parent) { _weapon = weapon; parent.AddScript(this); _parent.AddScript(movementScript); _parent.AddScript(lookScript); _weapon.AddScript(weaponScript); weapon.AddComponent(weaponScript.GetTextureComponent()); if (!(weaponScript is Crossbow)) { weapon.AddComponent(new RectangleCollider(new Vector2D(10 * 1.2f, 40 * 1.2f), false, true)); } _MAX_LIFE = maxLife; _life = maxLife; MessageBus.RegisterEvent(this); }
public void CreatePlayer(Texture texture, double maxLife, Vector2D position, MovementScript movementScript, LookScript lookScript, WeaponScript weaponScript, AttackScript attackScript, InteractionScript interactionScript, EstusScript estusScript, ActionScript actionScript, List <GameObject> players, int playerCount) { GameObject player = new GameObject(position); player.ObjectName = "MyPlayer"; /*CircleShape shape = new CircleShape(20); * shape.Origin = new Vector2D(20, 20); * shape.FillColor = Color.White;*/ player.AddComponent(new RenderComponent(texture)); player.AddComponent(new SphereCollider(_HELMET_SIZE, false)); player.AddScript(attackScript); player.AddScript(interactionScript); player.AddScript(new InvincibleScript(playerCount)); player.AddScript(estusScript); player.AddScript(actionScript); GameObject swordRotationLayer = new GameObject(new Vector2D(0, 0)); swordRotationLayer.ObjectName = "RotationLayer"; player.SetChild(swordRotationLayer); GameObject weapon = new GameObject(new Vector2D(25, -20)); weapon.ObjectName = "Weapon"; //weapon.AddComponent(weaponScript.GetTextureComponent()); new CharacterScript(maxLife, movementScript, lookScript, weaponScript, weapon, player); swordRotationLayer.SetChild(weapon); movementScript.Id = players.Count; _dataManager.Players.Add(player); _dataManager.Environment.SetChild(player); _dataManager.DynamicObjects.Add(player); player.Update(0); }
public void CreateEnemy(Texture texture, double maxLife, Vector2D position, double rotation, MovementScript movementScript, LookScript lookScript, WeaponScript weaponScript, AiScript aiScript) { GameObject enemy = new GameObject(position); enemy.ObjectName = "Enemy"; enemy.transform.Rotation = rotation; /*CircleShape shape = new CircleShape(20); * shape.OutlineColor = Color.White; * shape.OutlineThickness = 2; * shape.FillColor = Color.Black; * shape.Origin = new Vector2D(20, 20);*/ RenderComponent sc = new RenderComponent(texture); enemy.AddComponent(sc); SphereCollider sphereCollider = new SphereCollider(_HELMET_SIZE, false); enemy.AddComponent(sphereCollider); enemy.AddScript(aiScript); GameObject swordRotationLayer = new GameObject(new Vector2D(0, 0)); swordRotationLayer.ObjectName = "EnemyRotation"; enemy.SetChild(swordRotationLayer); GameObject weapon = new GameObject(new Vector2D(25, -20)); weapon.ObjectName = "EnemyWeapon"; new CharacterScript(maxLife, movementScript, lookScript, weaponScript, weapon, enemy); weapon.AddComponent(weaponScript.GetTextureComponent()); swordRotationLayer.SetChild(weapon); enemy.Update(0); _dataManager.Enemies.Add(enemy); _dataManager.Environment.SetChild(enemy); _dataManager.DynamicObjects.Add(enemy); HealthBar healthBar = new HealthBar(enemy.transform.Position, new Vector2D(50, 5), _dataManager.Font, maxLife); EnemyGui enemyGui = new EnemyGui(healthBar); enemy.AddScript(enemyGui); }