private void _createProjectile(object[] args) { // createProjectile(string actorPartyMemberSelector, string boneName, string spriteName, bool facingRight, float speed, Script callback, string targetPartyMemberSelector, bool addParticleEffect) string actorPartyMemberSelector = (string)args[0]; string boneName = (string)args[1]; string spriteName = (string)args[2]; bool facingRight = (bool)args[3]; float speed = (float)args[4]; Script callback = (Script)args[5]; string targetPartyMemberSelector = (string)args[6]; bool addParticleEffect = (bool)args[7]; PartyMember actor = getPartyMemberFromSelector(actorPartyMemberSelector); PartyMember target = getPartyMemberFromSelector(targetPartyMemberSelector); Bone bone = actor.BattleEntity.Skeleton.FindBone(boneName); Vector2 position = new Vector2(bone.WorldX, bone.WorldY); Sprite sprite = ResourceManager.GetNewSprite(spriteName); blocked = true; ScriptRunner self = this; Scene.AddEntity(new Projectile(sprite, position, facingRight, actor, target, speed, projectile => { projectile.Kill(); self.addNestedScriptRunner(callback, 0.0f); if (addParticleEffect) { ParticleEffect particleEffect = ParticleEffect.AddSmokePuff(projectile.Position, self.battle); particleEffect.DepthOverride = target.BattleEntity.Position.Y + 5.0f; } self.blocked = false; })); }
public void StartOverworld(Vector2 entityPosition) { if (Data.OverworldSpriteName != null && Data.OverworldSpriteName.Length > 0) { OverworldEntity = new Entity(ResourceManager.GetNewSprite(Data.OverworldSpriteName), entityPosition); } else { OverworldEntity = new Entity(ResourceManager.GetNewSkeleton(Data.OverworldSkeletonName), entityPosition); Rectangle customBoundingBox = OverworldEntity.GetBoundingBoxAt(Vector2.Zero); customBoundingBox.Height /= 4; customBoundingBox.Y += customBoundingBox.Height * 3; OverworldEntity.CustomBoundingBox = customBoundingBox; OverworldEntity.Scale = new Vector2(0.3f); } }
private void _createTrap(object[] args) { // createTrap(string actorPartyMemberSelector, string targetPartyMemberSelector, string spriteName) string actorPartyMemberSelector = (string)args[0]; string targetPartyMemberSelector = (string)args[1]; string spriteName = (string)args[2]; PartyMember actorPartyMember = getPartyMemberFromSelector(actorPartyMemberSelector); PartyMember frontPartyMember = getPartyMemberFromSelector(targetPartyMemberSelector + ">list>front"); float nudgeMultiplierX = battle.GetPartyForPartyMember(actorPartyMember) == battle.PlayerParty ? 1.0f : -1.0f; Rectangle boundingBox = frontPartyMember.BattleEntity.GetBoundingBox(); Vector2 position = new Vector2(boundingBox.X + (boundingBox.Width / 2.0f) + (boundingBox.Width * nudgeMultiplierX), boundingBox.Bottom); Trap trap = new Trap(ResourceManager.GetNewSprite(spriteName), position, actorPartyMember.EquippedWeapon.Attributes, actorPartyMember.EquippedWeapon.Data, actorPartyMember, battle); battle.GetPartyBattleLayoutForPartyMember(frontPartyMember).PlaceTrapInFrontOfPartyMember(frontPartyMember, trap); }
private void populateWithScenery() { AddEntity(new Scenery(ResourceManager.GetNewSprite(Area.ScenerySpriteNames.Sample()), new Vector2(100.0f, 400.0f))); }