Skip to content

Commit 37223be

Browse files
committed
postupdate
1 parent 763b4a1 commit 37223be

10 files changed

+457
-205
lines changed

Enemy.pde

+26-23
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
class Enemy{
2-
final int MOVE_U = 1;
3-
final int MOVE_D = 2;
4-
final int MOVE_L = 3;
5-
final int MOVE_R = 4;
62

73
String enemyName;
84
boolean state;
@@ -107,17 +103,17 @@ class Enemy{
107103
text("Power: " + power,startOffsetX,startOffsetY + columnHeight*4);
108104
text("Bounty: " + bounty,startOffsetX,startOffsetY + columnHeight*5);
109105
textAlign(CENTER,TOP);
110-
float showBuffCount = 0;
106+
int showBuffCount = 0;
111107
for(int i = 0; i < buffState.length; i++){
112108
if(buffState[i]){
113109
fill(0,180);
114-
rect(0,columnHeight*6+showBuffCount*columnHeight,columnWidth,columnHeight);
110+
rect(0,columnHeight*(6+showBuffCount),columnWidth,columnHeight);
115111
if(BuffData.BUFF_TYPE[i] == BUFF){
116112
fill(0,0,255);
117113
}else{
118114
fill(255,0,0);
119115
}
120-
rect(0,columnHeight*6+showBuffCount*columnHeight,columnWidth*(buffTimer[i]-realFrameCount)/BuffData.BUFF_DURATION[i],columnHeight);
116+
rect(0,columnHeight*(6+showBuffCount),columnWidth*(buffTimer[i]-realFrameCount)/BuffData.BUFF_DURATION[i],columnHeight);
121117
fill(255);
122118
text(BuffData.BUFF_NAME[i],columnWidth/2,startOffsetY+(showBuffCount+6)*columnHeight);
123119
showBuffCount++;
@@ -328,7 +324,7 @@ class Enemy{
328324
// debuffIndicate(x,y,100,100,(buffTimer[17]-realFrameCount),TurretSkillData.AURA_SKILL_B_T4_DURATION);
329325
//}
330326
if(buffState[20] && !buffState[17] && health < maxHealth){
331-
health += (maxHealth - health) * EnemyData.BUFF_HEALTH_REGEN_RATE;
327+
health += (maxHealth - health) * EnemyData.BUFF_HEALTH_REGEN_RATE[difficulty];
332328
}
333329
}
334330

@@ -406,23 +402,23 @@ class Enemy{
406402
//debuffIndicate(x,y,40,20);
407403
}
408404
if(buffState[18] && !buffState[17]){
409-
multiplier -= EnemyData.BUFF_FORTIFIED_MULTIPLIER;
405+
multiplier -= EnemyData.BUFF_FORTIFIED_MULTIPLIER[difficulty];
410406
}
411407
return multiplier;
412408
}
413409

414410
float armorRegenMultiplier(){
415411
float multiplier = 1;
416412
if(buffState[22] && !buffState[17]){
417-
multiplier += EnemyData.BUFF_WEAVE_MULTIPLIER;
413+
multiplier += EnemyData.BUFF_WEAVE_MULTIPLIER[difficulty];
418414
}
419415
return multiplier;
420416
}
421417

422418
float armorRegenDelayMultiplier(){
423419
float multiplier = 1;
424420
if(buffState[22] && !buffState[17]){
425-
multiplier -= EnemyData.BUFF_WEAVE_DELAY_REDUCTION;
421+
multiplier -= EnemyData.BUFF_WEAVE_DELAY_REDUCTION[difficulty];
426422
}
427423
return multiplier;
428424
}
@@ -433,39 +429,43 @@ class Enemy{
433429
multiplier += TurretSkillData.LASER_SKILL_B_T3_EXTRA_DAMAGE_MULTIPLER * (buffData2[4]/TurretSkillData.LASER_SKILL_B_T3_MAX_INFLATION_AMOUNT);
434430
}
435431
if(buffState[21] && !buffState[17]){
436-
multiplier -= EnemyData.BUFF_TOUGH_SKIN_MULTIPLIER;
432+
multiplier -= EnemyData.BUFF_TOUGH_SKIN_MULTIPLIER[difficulty];
437433
}
438434
return multiplier;
439435
}
440436

441437
float speedMultiplier(){
442438
float multiplier = 1;
439+
float largestSlow = 0;
443440
if(buffState[1]){
444-
multiplier -= TurretSkillData.CANNON_SKILL_C_T1_SLOW_PERCENTAGE;
441+
largestSlow = max(largestSlow, TurretSkillData.CANNON_SKILL_C_T1_SLOW_PERCENTAGE);
445442
//debuffIndicate(x,y,100,50,(buffTimer[1]-realFrameCount),TurretSkillData.CANNON_SKILL_C_T1_DURATION);
446443
}
447444
if(buffState[3]){
448-
multiplier -= max(TurretSkillData.CANNON_SKILL_C_T5_MIN_SLOW_PERCENTAGE,pow((TurretSkillData.CANNON_SKILL_C_T5_SLOW_PERCENTAGE),maimTime));
445+
largestSlow = max(largestSlow, max(TurretSkillData.CANNON_SKILL_C_T5_MIN_SLOW_PERCENTAGE,pow((TurretSkillData.CANNON_SKILL_C_T5_SLOW_PERCENTAGE),maimTime)));
449446
//debuffIndicate(x,y,100,100,(buffTimer[3]-realFrameCount),TurretSkillData.CANNON_SKILL_C_T5_DURATION);
450447
}
451448
if(buffState[5]){
452-
multiplier -= TurretSkillData.LASER_SKILL_C_T2_SLOW_PERCENTAGE;
449+
largestSlow = max(largestSlow, TurretSkillData.LASER_SKILL_C_T2_SLOW_PERCENTAGE);
453450
//debuffIndicate(x,y,100,100,(buffTimer[5]-realFrameCount),TurretSkillData.LASER_SKILL_C_T2_DURATION);
454451
}
455452
if(buffState[6]){
456-
multiplier -= map(health,maxHealth,0,0,TurretSkillData.LASER_SKILL_C_T5_MAXIMUM_SLOW_PERCENTAGE);
453+
largestSlow = max(largestSlow, map(health,maxHealth,0,0,TurretSkillData.LASER_SKILL_C_T5_MAXIMUM_SLOW_PERCENTAGE));
457454
//debuffIndicate(x,y,100,100,(buffTimer[6]-realFrameCount),TurretSkillData.LASER_SKILL_C_T5_DURATION);
458455
}
459456
if(buffState[13]){
460-
multiplier -= TurretSkillData.AURA_SKILL_C_T1_SLOW_PERCENTAGE;
457+
largestSlow = max(largestSlow, TurretSkillData.AURA_SKILL_C_T1_SLOW_PERCENTAGE);
461458
//debuffIndicate(x,y,100,100,(buffTimer[13]-realFrameCount),TurretSkillData.AURA_SKILL_C_T1_DURATION);
462459
}
463460
if(buffState[14]){
464-
multiplier -= TurretSkillData.AURA_SKILL_C_T3_SLOW_PERCENTAGE;
461+
largestSlow = max(largestSlow, TurretSkillData.AURA_SKILL_C_T3_SLOW_PERCENTAGE);
465462
//debuffIndicate(x,y,100,100,(buffTimer[14]-realFrameCount),TurretSkillData.AURA_SKILL_C_T3_SLOW_DURATION);
466463
}
464+
465+
multiplier -= largestSlow;
466+
467467
if(buffState[19] && !buffState[17]){
468-
multiplier += EnemyData.BUFF_HASTE_MULTIPLIER;
468+
multiplier += EnemyData.BUFF_HASTE_MULTIPLIER[difficulty];
469469
}
470470
//println(multiplier);
471471
return constrain(multiplier,0,10);
@@ -518,7 +518,9 @@ class Enemy{
518518
}
519519

520520
void jinxEffect(){
521-
if(health > 0 && health < maxHealth * TurretSkillData.AURA_SKILL_B_T5_HEALTH_THRESHOLD) hurt(health*10);
521+
if(health > 0 && health < maxHealth * TurretSkillData.AURA_SKILL_B_T5_HEALTH_THRESHOLD){
522+
health = -10;
523+
}
522524
}
523525

524526
void fatalEffect(float dmg){
@@ -530,7 +532,7 @@ class Enemy{
530532
void supportBuffAura(){
531533
int [] affectedIDList = new int [0];
532534
for(int i = 0; i < sentEnemy; i++){
533-
if(dist(x,y,enemy[i].x,enemy[i].y) - enemy[i].size <= buffRange){
535+
if(dist(x,y,enemy[i].x,enemy[i].y) - enemy[i].size/2 <= buffRange){
534536
if(i != ID) affectedIDList = splice(affectedIDList, i, affectedIDList.length);
535537
enemy[i].getBuff(18,3);
536538
enemy[i].getBuff(19,3);
@@ -647,6 +649,7 @@ class Enemy{
647649
maxHealth += enemyMaxHealthGrowth(type);
648650
maxArmor += enemyArmorGrowth(type);
649651
speed += enemySpeedGrowth(type);
652+
speed = min(speed, EnemyData.MAX_SPEED);
650653
bounty += enemyBountyGrowth(type);
651654
}
652655

@@ -673,7 +676,7 @@ class Enemy{
673676
drawHurt = false;
674677
state = true;
675678
demoMode = false;
676-
moveDir = MOVE_R;
679+
moveDir = mapInitDir;
677680
this.x = startpointX;
678681
this.y = startpointY;
679682
}
@@ -687,7 +690,7 @@ class Enemy{
687690
armor = maxArmor;
688691
drawHurt = false;
689692
state = true;
690-
moveDir = MOVE_R;
693+
moveDir = mapInitDir;
691694
x = ID * gridSize + 30;
692695
y = 30;
693696
}

EnemyData.pde

+25-22
Original file line numberDiff line numberDiff line change
@@ -2,61 +2,64 @@ static class EnemyData{
22

33
//Global Attributes
44

5-
static float MIN_SPEED = 0.05;
6-
static float [] ARMOR_ABSORB_RATIO = {0.5,0.6,0.8};
5+
static float MIN_SPEED = 0.1;
6+
static float MAX_SPEED = 29;
7+
static int BOUNTY_GROWTH_CAP_WAVE = 40;
8+
static float [] GROWTH_POWER = {0.3,0.4,0.5};
9+
static float [] ARMOR_ABSORB_RATIO = {0.5,0.75,0.8};
710
static int [] ARMOR_REGEN_DELAY = {600,300,180};
811

9-
static float BUFF_FORTIFIED_MULTIPLIER = 0.3;
10-
static float BUFF_HASTE_MULTIPLIER = 0.5;
11-
static float BUFF_HEALTH_REGEN_RATE = 0.002;
12-
static float BUFF_TOUGH_SKIN_MULTIPLIER = 0.3;
13-
static float BUFF_WEAVE_MULTIPLIER = 1;
14-
static float BUFF_WEAVE_DELAY_REDUCTION = 0.5;
12+
static float [] BUFF_FORTIFIED_MULTIPLIER = {0.2,0.3,0.4}; // Reduces the armor damage taken
13+
static float [] BUFF_HASTE_MULTIPLIER = {0.15,0.2,0.4}; // Increases the speed
14+
static float [] BUFF_HEALTH_REGEN_RATE = {0.002,0.0035,0.004}; // Heals based on the missing part of the health
15+
static float [] BUFF_TOUGH_SKIN_MULTIPLIER = {0.1,0.2,0.3}; // Reduces the damage taken
16+
static float [] BUFF_WEAVE_MULTIPLIER = {0.8,1.0,1.5}; // Increases the armor regen rate
17+
static float [] BUFF_WEAVE_DELAY_REDUCTION = {0.3,0.4,0.5}; // Reduces the armor regen delay
1518

1619
//Normal
1720

1821
static color NORMAL_COLOR = #FF0000;
1922
static float NORMAL_SIZE = 35;
2023
static float [] NORMAL_MAX_HEALTH = {150,200,300};
2124
static float [] NORMAL_POWER = {10,10,20};
22-
static float [] NORMAL_MAX_ARMOR = {25,50,100};
25+
static float [] NORMAL_MAX_ARMOR = {50,100,150};
2326
static float [] NORMAL_ARMOR_REGEN_RATE = {0,0.001,0.005};
2427
static float [] NORMAL_SPEED = {0.8,1.0,1.5};
25-
static int [] NORMAL_BOUNTY = {5,4,3};
28+
static int [] NORMAL_BOUNTY = {7,6,5};
2629
static float [] NORMAL_HEALTH_GROWTH = {200,300,400};
2730
static float [] NORMAL_ARMOR_GROWTH = {30,40,60};
2831
static float [] NORMAL_SPEED_GROWTH = {0.02,0.03,0.04};
29-
static float [] NORMAL_BOUNTY_GROWTH = {0.25,0.15,0.15};
32+
static float [] NORMAL_BOUNTY_GROWTH = {0.15,0.10,0.10};
3033

3134
//Fast
3235

3336
static color FAST_COLOR = #FAA112;
3437
static float FAST_SIZE = 20;
3538
static float [] FAST_MAX_HEALTH = {75,100,150};
36-
static float [] FAST_POWER = {5,5,30};
39+
static float [] FAST_POWER = {5,5,15};
3740
static float [] FAST_MAX_ARMOR = {15,25,100};
3841
static float [] FAST_ARMOR_REGEN_RATE = {0,0.002,0.1};
3942
static float [] FAST_SPEED = {1.2,1.5,1.8};
40-
static int [] FAST_BOUNTY = {4,3,3};
43+
static int [] FAST_BOUNTY = {5,4,3};
4144
static float [] FAST_HEALTH_GROWTH = {120,180,270};
4245
static float [] FAST_ARMOR_GROWTH = {20,40,80};
4346
static float [] FAST_SPEED_GROWTH = {0.03,0.04,0.06};
44-
static float [] FAST_BOUNTY_GROWTH = {0.2,0.12,0.12};
47+
static float [] FAST_BOUNTY_GROWTH = {0.15,0.08,0.08};
4548

4649
//Tank
4750

4851
static color TANK_COLOR = #110F52;
4952
static float TANK_SIZE = 50;
50-
static float [] TANK_MAX_HEALTH = {1800,2000,3000};
53+
static float [] TANK_MAX_HEALTH = {2000,2400,3200};
5154
static float [] TANK_POWER = {15,20,50};
5255
static float [] TANK_MAX_ARMOR = {200,600,1200};
5356
static float [] TANK_ARMOR_REGEN_RATE = {0,0.0005,0.003};
5457
static float [] TANK_SPEED = {0.5,0.6,0.9};
5558
static int [] TANK_BOUNTY = {80,60,40};
56-
static float [] TANK_HEALTH_GROWTH = {3000,4000,5000};
57-
static float [] TANK_ARMOR_GROWTH = {350,500,750};
59+
static float [] TANK_HEALTH_GROWTH = {2000,3000,4000};
60+
static float [] TANK_ARMOR_GROWTH = {450,600,800};
5861
static float [] TANK_SPEED_GROWTH = {0.02,0.02,0.03};
59-
static float [] TANK_BOUNTY_GROWTH = {2,2,1};
62+
static float [] TANK_BOUNTY_GROWTH = {1.5,1.0,0.5};
6063

6164
//Support
6265

@@ -66,12 +69,12 @@ static class EnemyData{
6669
static float [] SUPPORT_POWER = {10,15,35};
6770
static float [] SUPPORT_MAX_ARMOR = {10,20,100};
6871
static float [] SUPPORT_ARMOR_REGEN_RATE = {0,0,0.002};
69-
static float [] SUPPORT_SPEED = {1,1.2,1.5};
70-
static int [] SUPPORT_BOUNTY = {10,5,5};
72+
static float [] SUPPORT_SPEED = {0.8,1.0,1.2};
73+
static int [] SUPPORT_BOUNTY = {9,8,7};
7174
static float [] SUPPORT_BUFF_RANGE = {100,175,250};
72-
static float [] SUPPORT_HEALTH_GROWTH = {200,300,400};
75+
static float [] SUPPORT_HEALTH_GROWTH = {120,240,360};
7376
static float [] SUPPORT_ARMOR_GROWTH = {3,5,15};
7477
static float [] SUPPORT_SPEED_GROWTH = {0.02,0.03,0.05};
75-
static float [] SUPPORT_BOUNTY_GROWTH = {1,0.5,0.5};
78+
static float [] SUPPORT_BOUNTY_GROWTH = {0.2,0.15,0.15};
7679

7780
}

0 commit comments

Comments
 (0)