Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions pkg/engine/event/turn.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ type TurnTargetsAdded struct {
type TurnResetEventHandler = handler.EventHandler[TurnReset]
type TurnReset struct {
ResetTarget key.TargetID `json:"reset_target"`
GaugeCost float64 `json:"gauge_cost"`
GaugeCost int64 `json:"gauge_cost"`
TurnOrder []TurnStatus `json:"turn_order"`
}

Expand All @@ -23,21 +23,21 @@ type GaugeChange struct {
Key key.Reason `json:"key"`
Target key.TargetID `json:"target"`
Source key.TargetID `json:"source"`
OldGauge float64 `json:"old_gauge"`
NewGauge float64 `json:"new_gauge"`
OldGauge int64 `json:"old_gauge"`
NewGauge int64 `json:"new_gauge"`
TurnOrder []TurnStatus `json:"turn_order"`
}

type CurrentGaugeCostChangeEventHandler = handler.EventHandler[CurrentGaugeCostChange]
type CurrentGaugeCostChange struct {
Key key.Reason `json:"key"`
Source key.TargetID `json:"source"`
OldCost float64 `json:"old_cost"`
NewCost float64 `json:"new_cost"`
OldCost int64 `json:"old_cost"`
NewCost int64 `json:"new_cost"`
}

type TurnStatus struct {
ID key.TargetID `json:"id"`
Gauge float64 `json:"gauge"`
Gauge int64 `json:"gauge"`
AV float64 `json:"av"`
}
12 changes: 6 additions & 6 deletions pkg/engine/turn/modify.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ func (mgr *manager) SetGauge(data info.ModifyAttribute) error {
previousGauge := mgr.target(data.Target).gauge

// if there's no change to Gauge, exit early
if previousGauge == data.Amount {
if previousGauge == int64(data.Amount) {
return nil
}

mgr.target(data.Target).gauge = data.Amount
mgr.target(data.Target).gauge = int64(data.Amount)

// find target index in mgr.orderHandler.turnOrder
targetIndex, err := mgr.orderHandler.FindTargetIndex(data.Target)
Expand Down Expand Up @@ -57,25 +57,25 @@ func (mgr *manager) SetGauge(data info.ModifyAttribute) error {
}

func (mgr *manager) ModifyGaugeNormalized(data info.ModifyAttribute) error {
data.Amount = mgr.target(data.Target).gauge + data.Amount*BaseGauge
data.Amount = float64(mgr.target(data.Target).gauge) + data.Amount*float64(BaseGauge)
return mgr.SetGauge(data)
}

func (mgr *manager) ModifyGaugeAV(data info.ModifyAttribute) error {
added := mgr.attr.Stats(data.Target).SPD() * data.Amount // SPD * AV = gauge
data.Amount = mgr.target(data.Target).gauge + added
data.Amount = float64(mgr.target(data.Target).gauge) + added

return mgr.SetGauge(data)
}

func (mgr *manager) ModifyCurrentGaugeCost(data info.ModifyCurrentGaugeCost) {
data.Amount = mgr.gaugeCost + data.Amount
data.Amount = float64(mgr.gaugeCost) + data.Amount
mgr.SetCurrentGaugeCost(data)
}

func (mgr *manager) SetCurrentGaugeCost(data info.ModifyCurrentGaugeCost) {
prev := mgr.gaugeCost
mgr.gaugeCost = data.Amount
mgr.gaugeCost = int64(data.Amount)

if prev == mgr.gaugeCost {
return
Expand Down
12 changes: 6 additions & 6 deletions pkg/engine/turn/turn.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/simimpact/srsim/pkg/key"
)

const BaseGauge float64 = 10000.0
const BaseGauge int64 = 10000

type Manager interface {
TotalAV() float64
Expand All @@ -25,7 +25,7 @@ type Manager interface {

type target struct {
id key.TargetID
gauge float64
gauge int64
}

type turnOrderHandler struct {
Expand All @@ -34,7 +34,7 @@ type turnOrderHandler struct {
}

func (a *turnOrderHandler) av(i int) float64 {
return a.turnOrder[i].gauge / a.attr.Stats(a.turnOrder[i].id).SPD()
return float64(a.turnOrder[i].gauge) / a.attr.Stats(a.turnOrder[i].id).SPD()
}

func (a *turnOrderHandler) Len() int { return len(a.turnOrder) }
Expand All @@ -61,7 +61,7 @@ type manager struct {
event *event.System
attr attribute.Getter
orderHandler *turnOrderHandler
gaugeCost float64
gaugeCost int64
activeTurn bool
activeTarget key.TargetID
totalAV float64
Expand Down Expand Up @@ -125,7 +125,7 @@ func (mgr *manager) target(id key.TargetID) *target {
// This call is "expensive", so avoid calling it multiple times in the same logic.
// TODO: might want to change this into a util function that also takes in the speed?
func (mgr *manager) av(id key.TargetID) float64 {
return mgr.target(id).gauge / mgr.attr.Stats(id).SPD()
return float64(mgr.target(id).gauge) / mgr.attr.Stats(id).SPD()
}

// AddTargets adds a target to the Manager's turnOrder.
Expand Down Expand Up @@ -179,7 +179,7 @@ func (mgr *manager) StartTurn() (key.TargetID, float64, []event.TurnStatus, erro
av := mgr.av(mgr.activeTarget)

for _, t := range mgr.orderHandler.turnOrder {
t.gauge -= av * mgr.attr.Stats(t.id).SPD()
t.gauge -= int64(av * mgr.attr.Stats(t.id).SPD())
}

mgr.totalAV += av
Expand Down