Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: ENEMY_BOSS_HEALTH is not defined' in or related to this line: 'self.health = ENEMY_BOSS_HEALTH;' Line Number: 921
Code edit (3 edits merged)
Please save this source code
User prompt
add ENEMY_BOSS_PROJECTILE_COUNT projectileBoss instances to the boss, uniformly rotated
Code edit (1 edits merged)
Please save this source code
User prompt
add a projectileBoss asset to the ProjectileBoss class
User prompt
Add a new, empty ProjectileBoss class that inherits from the ConfigContainer class
Code edit (1 edits merged)
Please save this source code
User prompt
Add a new EnemyBoss class
Code edit (6 edits merged)
Please save this source code
User prompt
add an enabled variable and a setEnabled function to the enemy spawner class. Prevent spawning enemies if not enabled
User prompt
Please fix the bug: 'ReferenceError: graphics is not defined' in or related to this line: 'self.parent.addChild(new ProjectileEnemy({' Line Number: 888
Code edit (1 edits merged)
Please save this source code
Code edit (3 edits merged)
Please save this source code
User prompt
change the slightly brown tint to #FFEADB instead
User prompt
change the slightly brown tint to #FFD9BD instead
User prompt
change the slightly brown tint to #f5cfb3 instead
User prompt
change the slightly brown tint to C7AD99
Code edit (1 edits merged)
Please save this source code
User prompt
tint the uiBoonBackground and uiBoonUpgrade assets of the UiBoonSelection class slightly brown
Code edit (2 edits merged)
Please save this source code
User prompt
Rename the uiBoonButton asset to uiBoonSelection and update all usages in the code
Code edit (5 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: ENEMY_RANGED_ATTACK_COOLDOWN is not defined' in or related to this line: 'self.attackCooldown = ENEMY_RANGED_ATTACK_COOLDOWN;' Line Number: 855
Code edit (2 edits merged)
Please save this source code
===================================================================
--- original.js
+++ change.js
@@ -883,52 +883,35 @@
return self;
});
var EnemyBoss = Enemy.expand(function (config) {
var self = Enemy.call(this, config);
- var adjustStateBase = self.adjustState;
+ var baseUpdate = self.update;
self.speed = ENEMY_BOSS_SPEED;
- self.health = ENEMY_BOSS_HEALTH_BASE + ENEMY_BOSS_HEALTH_SCALE * difficultyScale;
+ self.health = ENEMY_BOSS_HEALTH;
self.healthOffset = ENEMY_BOSS_HEALTH_OFFSET;
self.attackRange = ENEMY_BOSS_ATTACK_RANGE;
self.attackCooldown = ENEMY_BOSS_ATTACK_COOLDOWN;
- self.xpDropBase = ENEMY_BOSS_XP_DROP_BASE;
- self.xpDropChance = ENEMY_BOSS_XP_DROP_CHANCE;
- self.xpDropExtraRolls = ENEMY_BOSS_XP_EXTRA_ROLLS;
self.graphics = self.attachAsset('enemyBoss', {
- y: ENEMY_BOSS_GRAPHICS_OFFSET,
anchorX: 0.5,
- anchorY: 0.5
+ anchorY: 1.0
});
- self.adjustState = function (state, stateValues) {
- var newStateValues = adjustStateBase(state, stateValues);
- switch (state) {
- case ENEMY_STATE_MOVE:
- newStateValues.cooldownAdjustment += ENEMY_BOSS_MOVE_COOLDOWN_ADJUSTMENT;
- break;
- case ENEMY_STATE_FLEE:
- stateValues.speedFactor *= ENEMY_BOSS_FLEE_SPEED_FACTOR;
- break;
- }
- return newStateValues;
+ for (var i = 0; i < ENEMY_BOSS_PROJECTILE_COUNT; i++) {
+ var angle = i * 2 * Math.PI / ENEMY_BOSS_PROJECTILE_COUNT;
+ self.addChild(new ProjectileBoss({
+ rotation: angle
+ }));
+ }
+ self.update = function () {
+ baseUpdate();
+ self.children.sort(function (a, b) {
+ return Math.sin(a.rotation) - Math.sin(b.rotation);
+ });
};
self.onAttack = function () {
- LK.effects.flashObject(self.graphics, 0x000000, 500);
- for (var i = 0; i < ENEMY_BOSS_PROJECTILE_COUNT; i++) {
- var angle = i * 2 * Math.PI / ENEMY_BOSS_PROJECTILE_COUNT;
- self.parent.addChild(new ProjectileBoss({
- x: self.graphics.x,
- y: self.graphics.y,
- rotation: angle,
- damage: ENEMY_BOSS_ATTACK_DAMAGE
- }));
- }
+ hero.takeDamage(ENEMY_BOSS_ATTACK_DAMAGE);
};
- self.onUpdate = function () {
- // Scale the enemy up and down
- var newScale = 1 + Math.sin(self.animationAlpha / ENEMY_BOSS_SCALE_PERIOD) * ENEMY_BOSS_SCALE_MAGNITUDE;
- self.graphics.scale.x = newScale;
- self.graphics.scale.y = newScale;
- };
+ self.setRadius(ENEMY_BOSS_ATTACK_RANGE);
+ self.takeDamage(0);
return self;
});
var EnemyBasic = Enemy.expand(function (config) {
var self = Enemy.call(this, config);
@@ -1232,24 +1215,14 @@
var ENEMY_RANGED_SPAWN_CHANCE_FACTOR = 0.5;
var ENEMY_RANGED_PROJECTILE_SPEED = 10;
var ENEMY_RANGED_PROJECTILE_RADIUS = 100;
;
-var ENEMY_BOSS_SPEED = 0.5;
+var ENEMY_BOSS_SPEED = 3.0;
var ENEMY_BOSS_HEALTH_BASE = 500;
-var ENEMY_BOSS_HEALTH_SCALE = 100;
var ENEMY_BOSS_HEALTH_OFFSET = 50;
var ENEMY_BOSS_ATTACK_RANGE = 300;
-var ENEMY_BOSS_ATTACK_DAMAGE = 20;
-var ENEMY_BOSS_ATTACK_COOLDOWN = 6 * GAME_TICKS;
-var ENEMY_BOSS_MOVE_COOLDOWN_ADJUSTMENT = -1.0;
-var ENEMY_BOSS_GRAPHICS_OFFSET = 150;
-var ENEMY_BOSS_FLEE_DISTANCE_FACTOR = 0.5;
-var ENEMY_BOSS_FLEE_SPEED_FACTOR = 1.5;
-var ENEMY_BOSS_SCALE_PERIOD = 30;
-var ENEMY_BOSS_SCALE_MAGNITUDE = 0.1;
-var ENEMY_BOSS_XP_DROP_BASE = 10;
-var ENEMY_BOSS_XP_DROP_CHANCE = 0.8; // Per level of Luck
-var ENEMY_BOSS_XP_EXTRA_ROLLS = 2;
+var ENEMY_BOSS_ATTACK_DAMAGE = 5;
+var ENEMY_BOSS_ATTACK_COOLDOWN = GAME_TICKS / 10;
var ENEMY_BOSS_PROJECTILE_COUNT = 5;
var ENEMY_BOSS_PROJECTILE_ROTATION = Math.PI / GAME_TICKS;
;
// Pickup settings
@@ -1317,8 +1290,9 @@
x: GAME_WIDTH / 2,
y: GAME_HEIGHT / 2,
radius: 75
}));
+enemySpawner.spawnClass(EnemyBoss);
/*
backgroundContainer.addChild(new PickupWeapon({
x: GAME_WIDTH / 4 * 2,
y: GAME_HEIGHT / 4,
pixel art cross with blue accents Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixel art of a white orb. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixel art of a white orb with a halo. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixel art of a pulsating white heart with a halo. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixel art of a dark goo projectile with red highlights. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixel art tall blue fireball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixel art of an evil fantasy sword facing downward. Minor red details. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
backgroundAmbient
Sound effect
heroHealed
Sound effect
pickupExperience
Sound effect
heroLeveled
Sound effect
weaponCrossImpact
Sound effect
heroImpact
Sound effect
enemyDeath
Sound effect
pickupWeapon
Sound effect
pickupCrucifix
Sound effect
weaponCrossLaunch
Sound effect
heroDeath
Sound effect
enemyRoar
Sound effect
clockChime
Sound effect