Skip to content

Commit

Permalink
More work on the Arena, next is implementing ArenaBuildings, starting…
Browse files Browse the repository at this point in the history
… with ArenaFountain
  • Loading branch information
tukkek committed Feb 11, 2018
1 parent 5076795 commit 67ccb67
Show file tree
Hide file tree
Showing 13 changed files with 232 additions and 47 deletions.
2 changes: 1 addition & 1 deletion javelin/controller/action/CastSpell.java
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ static float convertsavedctochance(final int savedc) {
if (savedc == Integer.MAX_VALUE) {
return 0;
}
if (savedc == Integer.MIN_VALUE) {
if (savedc == -Integer.MAX_VALUE) {
return 1;
}
return 1 - bind(savedc / 20f);
Expand Down
12 changes: 1 addition & 11 deletions javelin/controller/action/Withdraw.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@

import javelin.Javelin;
import javelin.controller.action.ai.Flee;
import javelin.controller.exception.RepeatTurn;
import javelin.controller.fight.Fight;
import javelin.controller.old.Game;
import javelin.controller.old.Game.Delay;
import javelin.model.unit.attack.Combatant;
import javelin.view.screen.BattleScreen;

Expand All @@ -24,13 +20,7 @@ public Withdraw() {

@Override
public boolean perform(Combatant active) {
final Fight f = Javelin.app.fight;
if (!f.canflee) {
Game.message("Cannot flee!", Delay.BLOCK);
BattleScreen.active.block();
throw new RepeatTurn();
}
f.withdraw(active, BattleScreen.active);
Javelin.app.fight.withdraw(active, BattleScreen.active);
return true;
}
}
4 changes: 2 additions & 2 deletions javelin/controller/challenge/CrCalculator.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ CLASS_LEVEL_FACTOR, new QualitiesFactor(), new BreathFactor(),
*/
static public float calculatecr(final Monster m) {
if (m.passive) {
return 0;
return m.challengerating;
}
float[] r = calculaterawcr(m);
float goldenrule = r[1];
Expand All @@ -116,7 +116,7 @@ static public float calculatecr(final Monster m) {
*/
public static float[] calculaterawcr(final Monster m) {
if (m.passive) {
return new float[] { 0, 0 };
return new float[] { m.challengerating, m.challengerating };
}
log(m.toString());
final TreeMap<CrFactor, Float> factorHistory = new TreeMap<CrFactor, Float>();
Expand Down
17 changes: 17 additions & 0 deletions javelin/controller/comparator/SizeComparator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package javelin.controller.comparator;

import java.util.Comparator;
import java.util.List;

public class SizeComparator implements Comparator<List<?>> {
static public final SizeComparator INSTANCE = new SizeComparator();

private SizeComparator() {
// singleton
}

@Override
public int compare(List<?> o1, List<?> o2) {
return Integer.compare(o1.size(), o2.size());
}
}
5 changes: 5 additions & 0 deletions javelin/controller/fight/Fight.java
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,11 @@ public void draw() {
* Active screen.
*/
public void withdraw(Combatant combatant, BattleScreen screen) {
if (!canflee) {
Game.message("Cannot flee!", Delay.BLOCK);
BattleScreen.active.block();
throw new RepeatTurn();
}
if (Javelin.DEBUG) {
withdrawall();
}
Expand Down
9 changes: 9 additions & 0 deletions javelin/controller/fight/minigame/arena/ArenaAcademy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package javelin.controller.fight.minigame.arena;

public class ArenaAcademy extends ArenaBuilding {

public ArenaAcademy() {
super("Academy", "locationrealmacademy");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@
import javelin.model.state.BattleState;
import javelin.model.unit.attack.Combatant;

public class Building extends Combatant {
/**
* TODO on upgrade start fast healing
*
* @author alex
*/
public class ArenaBuilding extends Combatant {
static BuildingLevel[] LEVELS = new BuildingLevel[] {
new BuildingLevel(0, 5, 70, 60, 5, 0),
new BuildingLevel(1, 10, 110, 90, 7, 7500 * ArenaFight.BOOST),
Expand Down Expand Up @@ -34,43 +39,47 @@ public BuildingLevel(int level, int repair, int hp, int damagethresold,
int level;
int damagethresold;

public Building(String avatar) {
public ArenaBuilding(String name, String avatar) {
super(Javelin.getmonster("Building"), false);
source.customName = name;
source.passive = true;
source.avatarfile = avatar;
source.immunitytocritical = true;
source.immunitytomind = true;
source.immunitytoparalysis = true;
source.immunitytopoison = true;
setlevel(Building.LEVELS[0]);
setlevel(ArenaBuilding.LEVELS[0]);
}

void setlevel(Building.BuildingLevel level) {
void setlevel(ArenaBuilding.BuildingLevel level) {
this.level = level.level;
maxhp = level.hp;
hp = maxhp;
damagethresold = level.damagethresold;
source.dr = level.hardness;
source.fasthealing = level.repair;
source.challengerating = (level.level + 1) * 5f;
}

void upgrade() {
setlevel(Building.LEVELS[level + 1]);
setlevel(ArenaBuilding.LEVELS[level + 1]);
}

/** TODO use */
Integer getupgradecost() {
int next = level + 1;
return next < Building.LEVELS.length ? Building.LEVELS[next].cost
: null;
return next < ArenaBuilding.LEVELS.length
? ArenaBuilding.LEVELS[next].cost : null;
}

@Override
public void act(BattleState s) {
s.clone(this).ap += 1;
if (hp == maxhp) {
source.fasthealing = 0;
}
}

public boolean isdamaged() {
return hp <= damagethresold;
public boolean isrepairing() {
return source.fasthealing > 0;
}
}
Loading

0 comments on commit 67ccb67

Please sign in to comment.