Skip to content

Commit

Permalink
add sim speed statistics
Browse files Browse the repository at this point in the history
  • Loading branch information
ColaColin committed Oct 19, 2014
1 parent 3ac7fc5 commit 7d45934
Show file tree
Hide file tree
Showing 10 changed files with 62 additions and 17 deletions.
File renamed without changes.
3 changes: 2 additions & 1 deletion db_definition/tablesv2.sql
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ CREATE TABLE v2_timepoint_stats (
energy_collected integer NOT NULL,
metal_wasted integer NOT NULL,
energy_wasted integer NOT NULL,
apm integer NOT NULL
apm integer NOT NULL,
sim_speed integer default 100 NOT NULL
);

create index on v2_timepoint_stats (player_game);
Expand Down
2 changes: 2 additions & 0 deletions db_definition/to20.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ALTER TABLE v2_timepoint_stats add column sim_speed integer default 100 NOT NULL
update v2_settings set report_version = 20;
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class V2TimepointStats extends org.jooq.impl.TableImpl<info.nanodesu.generated.tables.records.V2TimepointStatsRecord> {

private static final long serialVersionUID = -1663407655;
private static final long serialVersionUID = -1078508385;

/**
* The singleton instance of <code>public.v2_timepoint_stats</code>
Expand Down Expand Up @@ -111,6 +111,11 @@ public java.lang.Class<info.nanodesu.generated.tables.records.V2TimepointStatsRe
*/
public final org.jooq.TableField<info.nanodesu.generated.tables.records.V2TimepointStatsRecord, java.lang.Integer> APM = createField("apm", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this);

/**
* The column <code>public.v2_timepoint_stats.sim_speed</code>.
*/
public final org.jooq.TableField<info.nanodesu.generated.tables.records.V2TimepointStatsRecord, java.lang.Integer> SIM_SPEED = createField("sim_speed", org.jooq.impl.SQLDataType.INTEGER.nullable(false).defaulted(true), this);

/**
* Create a <code>public.v2_timepoint_stats</code> table reference
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
@javax.annotation.Generated(value = { "http://www.jooq.org", "3.2.0" },
comments = "This class is generated by jOOQ")
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class V2TimepointStatsRecord extends org.jooq.impl.UpdatableRecordImpl<info.nanodesu.generated.tables.records.V2TimepointStatsRecord> implements org.jooq.Record17<java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> {
public class V2TimepointStatsRecord extends org.jooq.impl.UpdatableRecordImpl<info.nanodesu.generated.tables.records.V2TimepointStatsRecord> implements org.jooq.Record18<java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> {

private static final long serialVersionUID = 499672077;
private static final long serialVersionUID = 1971489502;

/**
* Setter for <code>public.v2_timepoint_stats.id</code>.
Expand Down Expand Up @@ -251,6 +251,20 @@ public java.lang.Integer getApm() {
return (java.lang.Integer) getValue(16);
}

/**
* Setter for <code>public.v2_timepoint_stats.sim_speed</code>.
*/
public void setSimSpeed(java.lang.Integer value) {
setValue(17, value);
}

/**
* Getter for <code>public.v2_timepoint_stats.sim_speed</code>.
*/
public java.lang.Integer getSimSpeed() {
return (java.lang.Integer) getValue(17);
}

// -------------------------------------------------------------------------
// Primary key information
// -------------------------------------------------------------------------
Expand All @@ -264,23 +278,23 @@ public org.jooq.Record1<java.lang.Integer> key() {
}

// -------------------------------------------------------------------------
// Record17 type implementation
// Record18 type implementation
// -------------------------------------------------------------------------

/**
* {@inheritDoc}
*/
@Override
public org.jooq.Row17<java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> fieldsRow() {
return (org.jooq.Row17) super.fieldsRow();
public org.jooq.Row18<java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> fieldsRow() {
return (org.jooq.Row18) super.fieldsRow();
}

/**
* {@inheritDoc}
*/
@Override
public org.jooq.Row17<java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> valuesRow() {
return (org.jooq.Row17) super.valuesRow();
public org.jooq.Row18<java.lang.Integer, java.lang.Integer, java.sql.Timestamp, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.lang.Integer> valuesRow() {
return (org.jooq.Row18) super.valuesRow();
}

/**
Expand Down Expand Up @@ -419,6 +433,14 @@ public org.jooq.Field<java.lang.Integer> field17() {
return info.nanodesu.generated.tables.V2TimepointStats.V2_TIMEPOINT_STATS.APM;
}

/**
* {@inheritDoc}
*/
@Override
public org.jooq.Field<java.lang.Integer> field18() {
return info.nanodesu.generated.tables.V2TimepointStats.V2_TIMEPOINT_STATS.SIM_SPEED;
}

/**
* {@inheritDoc}
*/
Expand Down Expand Up @@ -555,6 +577,14 @@ public java.lang.Integer value17() {
return getApm();
}

/**
* {@inheritDoc}
*/
@Override
public java.lang.Integer value18() {
return getSimSpeed();
}

// -------------------------------------------------------------------------
// Constructors
// -------------------------------------------------------------------------
Expand All @@ -569,7 +599,7 @@ public V2TimepointStatsRecord() {
/**
* Create a detached, initialised V2TimepointStatsRecord
*/
public V2TimepointStatsRecord(java.lang.Integer id, java.lang.Integer playerGame, java.sql.Timestamp timepoint, java.lang.Integer armyCount, java.lang.Integer metalIncome, java.lang.Integer energyIncome, java.lang.Integer metalIncomeNet, java.lang.Integer energyIncomeNet, java.lang.Integer metalSpending, java.lang.Integer energySpending, java.lang.Integer metalStored, java.lang.Integer energyStored, java.lang.Integer metalCollected, java.lang.Integer energyCollected, java.lang.Integer metalWasted, java.lang.Integer energyWasted, java.lang.Integer apm) {
public V2TimepointStatsRecord(java.lang.Integer id, java.lang.Integer playerGame, java.sql.Timestamp timepoint, java.lang.Integer armyCount, java.lang.Integer metalIncome, java.lang.Integer energyIncome, java.lang.Integer metalIncomeNet, java.lang.Integer energyIncomeNet, java.lang.Integer metalSpending, java.lang.Integer energySpending, java.lang.Integer metalStored, java.lang.Integer energyStored, java.lang.Integer metalCollected, java.lang.Integer energyCollected, java.lang.Integer metalWasted, java.lang.Integer energyWasted, java.lang.Integer apm, java.lang.Integer simSpeed) {
super(info.nanodesu.generated.tables.V2TimepointStats.V2_TIMEPOINT_STATS);

setValue(0, id);
Expand All @@ -589,5 +619,6 @@ public V2TimepointStatsRecord(java.lang.Integer id, java.lang.Integer playerGame
setValue(14, metalWasted);
setValue(15, energyWasted);
setValue(16, apm);
setValue(17, simSpeed);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class GameSummaryServer(val gameId: Int, players: PlayersServer) {
for (data <- entry._2) {
addStats(playerId, data.timepoint, StatsReportData(data.armyCount, data.metalIncome, data.energyIncome,
data.metalSpending, data.energySpending, data.metalIncomeNet, data.energyIncomeNet, data.metalStored,
data.energyStored, data.metalProduced, data.energyProduced, data.metalWasted, data.energyWasted, data.apm))
data.energyStored, data.metalProduced, data.energyProduced, data.metalWasted, data.energyWasted, data.apm, data.simSpeed))
}
}

Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/info/nanodesu/model/ReportData.scala
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ case class StatsReportData(
energyProducedSinceLastTick: Int,
metalWastedSinceLastTick: Int,
energyWastedSinceLastTick: Int,
apm: Int)
apm: Int,
simSpeed: Int)

// can't have the usual companion name because overloading apply would result in problems in the tests
object RunningGameDataC {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ case class ChartDataPoint(
energyProduced: Int,
metalWasted: Int,
energyWasted: Int,
apm: Int){}
apm: Int,
simSpeed: Int){}

case class ChartPlayer(
name: String,
Expand Down Expand Up @@ -63,7 +64,8 @@ object ChartDataPackage {
s.energyProducedSinceLastTick,
s.metalWastedSinceLastTick,
s.energyWastedSinceLastTick,
s.apm)
s.apm,
s.simSpeed)
}
}

Expand Down Expand Up @@ -100,7 +102,7 @@ object ChartDataCollector {
def selectDataPointsForGame(gameId: Int, ignoreLocks: Boolean): List[ChartDataDbResult] = {
val lst = db.select(teams.PRIMARY_COLOR, players.ID, names.DISPLAY_NAME, stats.TIMEPOINT, stats.ARMY_COUNT, stats.METAL_INCOME, stats.ENERGY_INCOME, stats.METAL_INCOME_NET,
stats.ENERGY_INCOME_NET, stats.METAL_SPENDING, stats.ENERGY_SPENDING, stats.METAL_STORED, stats.ENERGY_STORED, stats.METAL_COLLECTED,
stats.ENERGY_COLLECTED, stats.METAL_WASTED, stats.ENERGY_WASTED, stats.APM).
stats.ENERGY_COLLECTED, stats.METAL_WASTED, stats.ENERGY_WASTED, stats.APM, stats.SIM_SPEED).
from(stats).
join(playerGameRels).onKey().
join(players).onKey().
Expand All @@ -115,7 +117,7 @@ object ChartDataCollector {
def v[T](f: Field[T]) = r.getValue(f)
val dat = ChartDataPoint(v(stats.TIMEPOINT).getTime(), v(stats.ARMY_COUNT), v(stats.METAL_INCOME), v(stats.ENERGY_INCOME), v(stats.METAL_INCOME_NET),
v(stats.ENERGY_INCOME_NET), v(stats.METAL_SPENDING), v(stats.ENERGY_SPENDING), v(stats.METAL_STORED), v(stats.ENERGY_STORED), v(stats.METAL_COLLECTED),
v(stats.ENERGY_COLLECTED), v(stats.METAL_WASTED), v(stats.ENERGY_WASTED), v(stats.APM))
v(stats.ENERGY_COLLECTED), v(stats.METAL_WASTED), v(stats.ENERGY_WASTED), v(stats.APM), v(stats.SIM_SPEED))
ChartDataDbResult(v(players.ID), v(names.DISPLAY_NAME), v(teams.PRIMARY_COLOR), dat)
}
buf.toList
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ object RunningGameStatsReporter {
def updateGameEndTime(gameId: Int, time: Date) = updateGameEndTime(db, gameId, time.getTime())
def insertStatsData(data: StatsReportData, link: Int, time: Date) = {
db.insertInto(stats,
stats.SIM_SPEED,
stats.ARMY_COUNT,
stats.METAL_INCOME,
stats.ENERGY_INCOME,
Expand All @@ -120,6 +121,7 @@ object RunningGameStatsReporter {
stats.PLAYER_GAME,
stats.TIMEPOINT).
values(
data.simSpeed,
data.armyCount,
data.metalIncome,
data.energyIncome,
Expand Down
3 changes: 2 additions & 1 deletion src/main/webapp/static/js/chartpage.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ $(function() {
var energyIncomeNet = makeDefStat("energyIncomeNet", "Energy income net");
var metalSpending = makeDefStat("metalSpending", "Metal spending");
var energySpending = makeDefStat("energySpending", "Energy spending");
var simSpeed = makeDefStat("simSpeed", "Sim Speed in %");

var apm = {
getValue : function(tp, i) {
Expand Down Expand Up @@ -110,7 +111,7 @@ $(function() {
self.sts = [ armyCount, buildSpeed, buildSpeedByMetal, buildSpeedByEnergy, metalIncome, metalSpending,
metalIncomeNet, metalWasted, metalStored, metalProduced, metalSpent,
energyIncome, energySpending, energyIncomeNet, energyWasted,
energyStored, energyProduced, energySpent, apm ]
energyStored, energyProduced, energySpent, apm, simSpeed ]

var firstTime = undefined;
var lastTime = undefined;
Expand Down

0 comments on commit 7d45934

Please sign in to comment.