protected override async Task OnActivatedAsync(ActorActivationDetails details) { await base.OnActivatedAsync(details); base.upgrades = (byte)details.Params[0]; strength = 1; collisionFlags &= ~CollisionFlags.ApplyGravitation; collisionFlags |= CollisionFlags.SkipPerPixelCollisions; await RequestMetadataAsync("Weapon/Pepper"); AnimState state = AnimState.Idle; if ((upgrades & 0x1) != 0) { timeLeft = MathF.Rnd.NextFloat(32, 40); state |= (AnimState)1; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 1f; light.Brightness = 1f; light.RadiusNear = 4f; light.RadiusFar = 16f; } else { timeLeft = MathF.Rnd.NextFloat(26, 36); } SetAnimation(state); PlaySound("Fire"); renderer.Active = false; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { await base.OnActivatedAsync(details); base.upgrades = (byte)details.Params[0]; strength = 2; CollisionFlags &= ~CollisionFlags.ApplyGravitation; await RequestMetadataAsync("Weapon/RF"); AnimState state = AnimState.Idle; if ((upgrades & 0x1) != 0) { timeLeft = 35; state |= (AnimState)1; } else { timeLeft = 30; } SetAnimation(state); PlaySound("Fire", 0.4f); renderer.Active = false; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.Brightness = 0.8f; light.RadiusNear = 3f; light.RadiusFar = 12f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); ushort intensity = details.Params[0]; ushort brightness = details.Params[1]; ushort radiusNear1 = details.Params[2]; ushort radiusNear2 = details.Params[3]; ushort radiusFar = details.Params[4]; ushort speed = details.Params[5]; ushort sync = details.Params[6]; collisionFlags = CollisionFlags.None; this.radiusNear1 = radiusNear1; this.radiusNear2 = radiusNear2; this.radiusFar = radiusFar; this.speed = 0.6f * speed; phase = (BaseCycleFrames - ((float)(Time.GameTimer.TotalMilliseconds % BaseCycleFrames) + sync * 175)) % BaseCycleFrames; light = AddComponent <LightEmitter>(); light.Intensity = (intensity / 255f); light.Brightness = (brightness / 255f); }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); IsFacingLeft = (details.Params[0] != 0); collisionFlags &= ~CollisionFlags.ApplyGravitation; RequestMetadata("Weapon/Toaster"); SetAnimation("Fire"); const float baseSpeed = 1.2f; if (IsFacingLeft) { speedX = -1f * (baseSpeed + MathF.Rnd.NextFloat(0f, 0.2f)); } else { speedX = +1f * (baseSpeed + MathF.Rnd.NextFloat(0f, 0.2f)); } speedY += MathF.Rnd.NextFloat(-0.5f, 0.5f); timeLeft = 60; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.85f; light.Brightness = 0.4f; light.RadiusNear = 0f; light.RadiusFar = 30f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); IsFacingLeft = (details.Params[0] != 0); collisionFlags &= ~CollisionFlags.ApplyGravitation; canBeFrozen = false; health = int.MaxValue; speedX = (IsFacingLeft ? -5f : 5f); speedY = 5f; RequestMetadata("Boss/Devan"); SetAnimation((AnimState)675); OnUpdateHitbox(); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.85f; light.Brightness = 0.4f; light.RadiusNear = 0f; light.RadiusFar = 30f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { IsFacingLeft = (details.Params[0] != 0); base.canBeFrozen = false; base.isInvulnerable = true; base.CollisionFlags &= ~CollisionFlags.ApplyGravitation; await RequestMetadataAsync("Weapon/Toaster"); SetAnimation("Fire"); const float baseSpeed = 1.2f; if (IsFacingLeft) { speedX = -1f * (baseSpeed + MathF.Rnd.NextFloat(0f, 0.2f)); } else { speedX = +1f * (baseSpeed + MathF.Rnd.NextFloat(0f, 0.2f)); } speedY += MathF.Rnd.NextFloat(-0.5f, 0.5f); timeLeft = 60; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.85f; light.Brightness = 0.4f; light.RadiusNear = 0f; light.RadiusFar = 30f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { await base.OnActivatedAsync(details); base.upgrades = (byte)details.Params[0]; CollisionFlags = (CollisionFlags & ~CollisionFlags.ApplyGravitation) | CollisionFlags.SkipPerPixelCollisions; await RequestMetadataAsync("Weapon/Blaster"); AnimState state = AnimState.Idle; if ((upgrades & 0x1) != 0) { timeLeft = 28; state |= (AnimState)1; strength = 2; } else { timeLeft = 25; strength = 1; } SetAnimation(state); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.Brightness = 0.6f; light.RadiusNear = 5f; light.RadiusFar = 20f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { await base.OnActivatedAsync(details); base.upgrades = (byte)details.Params[0]; strength = 4; CollisionFlags &= ~(CollisionFlags.ApplyGravitation | CollisionFlags.CollideWithTileset); CollisionFlags |= CollisionFlags.SkipPerPixelCollisions; await RequestMetadataAsync("Weapon/Electro"); ColorRgba color1, color2; if ((upgrades & 0x1) != 0) { timeLeft = 55; color1 = new ColorRgba(160, 245, 255, 140); color2 = new ColorRgba(20, 170, 255, 140); } else { timeLeft = 55; color1 = new ColorRgba(255, 235, 20, 140); color2 = new ColorRgba(255, 120, 10, 140); } SetAnimation(AnimState.Idle); PlaySound("Fire"); // Turn off default renderer renderer.Active = false; // Create materials for particles material1 = new Material(ContentResolver.Current.RequestShader("BasicNormal")); material1.SetTexture("mainTex", Texture.White); material1.SetTexture("normalTex", ContentResolver.Current.DefaultNormalMap); material1.SetValue("normalMultiplier", Vector2.One); material1.MainColor = color1; material2 = new Material(ContentResolver.Current.RequestShader("BasicNormal")); material2.SetTexture("mainTex", Texture.White); material2.SetTexture("normalTex", ContentResolver.Current.DefaultNormalMap); material2.SetValue("normalMultiplier", Vector2.One); material2.MainColor = color2; light = AddComponent <LightEmitter>(); light.Intensity = 0.4f; light.Brightness = 0.2f; light.RadiusNear = 0f; light.RadiusFar = 12f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); //strength = 2; collisionFlags &= ~CollisionFlags.ApplyGravitation; RequestMetadata("Weapon/Seeker"); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.RadiusNear = 3f; light.RadiusFar = 8f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); health = int.MaxValue; collisionFlags &= ~CollisionFlags.ApplyGravitation; RequestMetadata("Weapon/Thunderbolt"); light = AddComponent <LightEmitter>(); light.Intensity = 0.4f; light.Brightness = 0.7f; light.RadiusNear = 0f; light.RadiusFar = 120f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); strength = 1; RequestMetadata("Weapon/Bouncer"); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.Brightness = 0.2f; light.RadiusNear = 0f; light.RadiusFar = 12f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); collisionFlags &= ~CollisionFlags.ApplyGravitation; RequestMetadata("Weapon/Blaster"); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.Brightness = 0.6f; light.RadiusNear = 5f; light.RadiusFar = 20f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { ushort intensity = details.Params[0]; ushort brightness = details.Params[1]; ushort radiusNear = details.Params[2]; ushort radiusFar = details.Params[3]; CollisionFlags = CollisionFlags.ForceDisableCollisions; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = (intensity / 255f); light.Brightness = (brightness / 255f); light.RadiusNear = radiusNear; light.RadiusFar = radiusFar; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); strength = 4; collisionFlags &= ~(CollisionFlags.ApplyGravitation | CollisionFlags.CollideWithTileset); collisionFlags |= CollisionFlags.SkipPerPixelCollisions; RequestMetadata("Weapon/Electro"); light = AddComponent <LightEmitter>(); light.Intensity = 0.4f; light.Brightness = 0.2f; light.RadiusNear = 0f; light.RadiusFar = 12f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { await base.OnActivatedAsync(details); base.upgrades = (byte)details.Params[0]; health = int.MaxValue; collisionFlags &= ~CollisionFlags.ApplyGravitation; await RequestMetadataAsync("Weapon/Thunderbolt"); light = AddComponent <LightEmitter>(); light.Intensity = 0.4f; light.Brightness = 0.7f; light.RadiusNear = 0f; light.RadiusFar = 120f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); ushort intensity = details.Params[0]; ushort brightness = details.Params[1]; ushort radiusNear = details.Params[2]; ushort radiusFar = details.Params[3]; collisionFlags = CollisionFlags.None; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = (intensity / 255f); light.Brightness = (brightness / 255f); light.RadiusNear = radiusNear; light.RadiusFar = radiusFar; }
public IlluminateLightPart(float size) { float intensity = MathF.Rnd.NextFloat(0.22f, 0.42f); distance = MathF.Rnd.NextFloat(6f, 46f) * size; phase = MathF.Rnd.NextFloat(MathF.TwoPi); speed = MathF.Rnd.NextFloat(-0.18f, -0.06f); AddComponent <Transform>(); AddComponent(new LocalController(this)); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = intensity * 0.7f; light.Brightness = intensity; light.RadiusFar = intensity * 60f * size; light.Type = LightType.Solid; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { health = int.MaxValue; // ToDo: Load metadata await RequestMetadataAsync("Weapon/Blaster"); SetAnimation(AnimState.Fall); collisionFlags = CollisionFlags.CollideWithOtherActors; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.Brightness = 0.6f; light.RadiusNear = 5f; light.RadiusFar = 20f; }
public void OnFire(Player owner, Vector3 speed, float angle, bool isFacingLeft, byte upgrades) { base.owner = owner; base.IsFacingLeft = isFacingLeft; base.upgrades = upgrades; float angleRel = angle * (isFacingLeft ? -1 : 1); float baseSpeed = ((upgrades & 0x1) != 0 ? MathF.Rnd.NextFloat(5f, 7.2f) : MathF.Rnd.NextFloat(3f, 7f)); if (isFacingLeft) { speedX = MathF.Min(0, speed.X) - MathF.Cos(angleRel) * baseSpeed; } else { speedX = MathF.Max(0, speed.X) + MathF.Cos(angleRel) * baseSpeed; } speedY = MathF.Sin(angleRel) * baseSpeed; speedY += MathF.Abs(speed.Y) * speedY; AnimState state = AnimState.Idle; if ((upgrades & 0x1) != 0) { timeLeft = MathF.Rnd.NextFloat(32, 40); state |= (AnimState)1; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 1f; light.Brightness = 1f; light.RadiusNear = 4f; light.RadiusFar = 16f; } else { timeLeft = MathF.Rnd.NextFloat(26, 36); } Transform.Angle = angle; SetAnimation(state); PlaySound("Fire"); }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { ushort intensity = details.Params[0]; ushort brightness = details.Params[1]; this.radiusNear1 = details.Params[2]; this.radiusNear2 = details.Params[3]; this.radiusFar = details.Params[4]; this.speed = details.Params[5] * 0.6f; ushort sync = details.Params[6]; collisionFlags = CollisionFlags.ForceDisableCollisions; phase = (BaseCycleFrames - ((float)(Time.GameTimer.TotalMilliseconds % BaseCycleFrames) + sync * 175)) % BaseCycleFrames; light = AddComponent <LightEmitter>(); light.Intensity = (intensity / 255f); light.Brightness = (brightness / 255f); }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { ushort theme = details.Params[0]; CollisionFlags = CollisionFlags.CollideWithOtherActors; await RequestMetadataAsync("Object/PinballBumper"); switch (theme) { case 0: SetAnimation((AnimState)0x000); break; case 1: SetAnimation((AnimState)0x001); break; } light = AddComponent <LightEmitter>(); light.RadiusNear = 24f; light.RadiusFar = 60f; }
public void LightUpdate(bool reset = true) { List <LightEmitter> emitters = new List <LightEmitter>(); foreach (Transform tile in tiles) { LightingController lightcontroller = tile.GetComponent <LightingController>(); if (reset) { lightcontroller.ResetLight(); } if (lightcontroller.lightemitlevel != 0) { LightEmitter emitter = new LightEmitter(); emitter.intensity = lightcontroller.lightemitlevel; emitter.x = tile.GetComponent <BlockController>().x; emitter.y = tile.GetComponent <BlockController>().y; emitters.Add(emitter); } } for (int x = 0; x < xLength; x++) // For every x co-ord { for (int y = yLength - 1; y > 0; y--) // Iterate from top to bottom { if (map[x, y] != 0) // When you find a non-air block { if (y < map.GetLength(1)) { tiles[x, y + 1].GetComponent <LightingController>().PropagateLight(20, 0); // Light the air block above it } if (!tilelist.transparentIDs.Contains(map[x, y])) // If not a transparent block { y = 0; // End the loop } } } } foreach (LightEmitter emitter in emitters) { tiles[emitter.x, emitter.y].GetComponent <LightingController>().PropagateLight(emitter.intensity, 0); } }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { base.canBeFrozen = false; base.canCollideWithAmmo = false; base.isInvulnerable = true; base.collisionFlags = CollisionFlags.CollideWithTileset | CollisionFlags.CollideWithOtherActors | CollisionFlags.SkipPerPixelCollisions; health = int.MaxValue; await RequestMetadataAsync("Boss/Bolly"); SetAnimation((AnimState)5); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.Brightness = 0.8f; light.RadiusNear = 3f; light.RadiusFar = 12f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { IsFacingLeft = (details.Params[0] != 0); canBeFrozen = false; health = int.MaxValue; speedX = (IsFacingLeft ? -8f : 8f); await RequestMetadataAsync("Boss/Robot"); SetAnimation((AnimState)1073741827); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.1f; light.Brightness = 0.8f; light.RadiusNear = 0f; light.RadiusFar = 22f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); canHurtPlayer = false; canBeFrozen = false; collisionFlags = CollisionFlags.CollideWithOtherActors | CollisionFlags.SkipPerPixelCollisions; health = int.MaxValue; RequestMetadata("Enemy/Witch"); SetAnimation((AnimState)1073741828); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.85f; light.RadiusNear = 0f; light.RadiusFar = 18f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { base.canBeFrozen = false; base.canCollideWithAmmo = false; base.canHurtPlayer = false; base.isInvulnerable = true; base.collisionFlags = CollisionFlags.CollideWithOtherActors | CollisionFlags.SkipPerPixelCollisions; health = int.MaxValue; await RequestMetadataAsync("Enemy/Witch"); SetAnimation((AnimState)1073741828); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.85f; light.RadiusNear = 0f; light.RadiusFar = 18f; }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); ushort theme = details.Params[0]; collisionFlags = CollisionFlags.CollideWithOtherActors; RequestMetadata("Object/PinballBumper"); switch (theme) { case 0: SetAnimation((AnimState)0x000); break; case 1: SetAnimation((AnimState)0x001); break; } light = AddComponent <LightEmitter>(); light.RadiusNear = 24f; light.RadiusFar = 60f; }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { ushort theme = details.Params[0]; bool isFacingLeft = (details.Params[1] != 0); base.canBeFrozen = false; base.isInvulnerable = true; base.collisionFlags = CollisionFlags.CollideWithOtherActors; health = int.MaxValue; speedX = (isFacingLeft ? -4f : 4f); speedY = 2f; switch (theme) { case 0: default: await RequestMetadataAsync("Boss/Bilsy"); break; case 1: // Xmas await RequestMetadataAsync("Boss/BilsyXmas"); break; } SetAnimation((AnimState)1073741828); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.85f; light.Brightness = 0.4f; light.RadiusNear = 0f; light.RadiusFar = 30f; PlaySound("FireStart"); }
public override void OnAttach(ActorInstantiationDetails details) { base.OnAttach(details); ushort theme = details.Params[0]; bool isFacingLeft = (details.Params[1] != 0); canBeFrozen = false; collisionFlags = CollisionFlags.CollideWithOtherActors; health = int.MaxValue; speedX = (isFacingLeft ? -4f : 4f); speedY = 2f; switch (theme) { case 0: default: RequestMetadata("Boss/Bilsy"); break; case 1: // Xmas RequestMetadata("Boss/BilsyXmas"); break; } SetAnimation((AnimState)1073741828); LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.85f; light.Brightness = 0.4f; light.RadiusNear = 0f; light.RadiusFar = 30f; PlaySound("FireStart"); }
protected override async Task OnActivatedAsync(ActorActivationDetails details) { await base.OnActivatedAsync(details); base.upgrades = (byte)details.Params[0]; //strength = 2; CollisionFlags &= ~CollisionFlags.ApplyGravitation; await RequestMetadataAsync("Weapon/Seeker"); AnimState state = AnimState.Idle; if ((upgrades & 0x1) != 0) { timeLeft = 188; defaultRecomputeTime = 6f; strength = 3; state |= (AnimState)1; } else { timeLeft = 144; defaultRecomputeTime = 10f; strength = 2; } SetAnimation(state); PlaySound(Transform.Pos, "Fire"); renderer.Active = false; LightEmitter light = AddComponent <LightEmitter>(); light.Intensity = 0.8f; light.RadiusNear = 3f; light.RadiusFar = 8f; }