weapon stats are now set via robot
This commit is contained in:
parent
dfb3dba4f4
commit
855b8518b8
@ -218,9 +218,9 @@ func (p *player) fire(projectiles map[*Projectile]bool, turn int) *Projectile {
|
|||||||
Id: idg.Hash(),
|
Id: idg.Hash(),
|
||||||
Position: p.Robot.Position,
|
Position: p.Robot.Position,
|
||||||
MoveTo: *p.Robot.FireAt,
|
MoveTo: *p.Robot.FireAt,
|
||||||
Damage: 10,
|
Damage: p.Robot.Stats.WeaponDamage,
|
||||||
Radius: p.Robot.Stats.WeaponRadius,
|
Radius: p.Robot.Stats.WeaponRadius,
|
||||||
Speed: float32(p.Robot.Stats.Speed * 3),
|
Speed: p.Robot.Stats.WeaponSpeed,
|
||||||
Owner: p,
|
Owner: p,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
14
robot.go
14
robot.go
@ -64,6 +64,8 @@ type Stats struct {
|
|||||||
ScannerRadius int `json:"-"`
|
ScannerRadius int `json:"-"`
|
||||||
TurnSpeed int `json:"-"`
|
TurnSpeed int `json:"-"`
|
||||||
FireRate int `json:"-"`
|
FireRate int `json:"-"`
|
||||||
|
WeaponDamage int `json:"-"`
|
||||||
|
WeaponSpeed float32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// We request stats using an integer between 1 and 100, the
|
// We request stats using an integer between 1 and 100, the
|
||||||
@ -76,6 +78,8 @@ type StatsRequest struct {
|
|||||||
ScannerRadius int `json:"scanner_radius"`
|
ScannerRadius int `json:"scanner_radius"`
|
||||||
TurnSpeed int `json:"turn_speed"`
|
TurnSpeed int `json:"turn_speed"`
|
||||||
FireRate int `json:"fire_rate"`
|
FireRate int `json:"fire_rate"`
|
||||||
|
WeaponDamage int `json:"weapon_damage"`
|
||||||
|
WeaponSpeed int `json:"weapon_speed"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeriveStats(request StatsRequest) Stats {
|
func DeriveStats(request StatsRequest) Stats {
|
||||||
@ -110,6 +114,14 @@ func DeriveStats(request StatsRequest) Stats {
|
|||||||
var fire_rate_max float32 = 2000.0
|
var fire_rate_max float32 = 2000.0
|
||||||
s.FireRate = int(fire_rate_max+300.0) - int(((float32(request.FireRate)/100.0)*(fire_rate_max-fire_rate_min))+fire_rate_min)
|
s.FireRate = int(fire_rate_max+300.0) - int(((float32(request.FireRate)/100.0)*(fire_rate_max-fire_rate_min))+fire_rate_min)
|
||||||
|
|
||||||
|
var weapon_damage_min float32 = 0.0
|
||||||
|
var weapon_damage_max float32 = 20.0
|
||||||
|
s.WeaponDamage = int(((float32(request.WeaponDamage) / 100.0) * (weapon_damage_max - weapon_damage_min)) + weapon_damage_min)
|
||||||
|
|
||||||
|
var weapon_speed_min float32 = 80.0
|
||||||
|
var weapon_speed_max float32 = 600.0
|
||||||
|
s.WeaponSpeed = float32(((float32(request.WeaponSpeed) / 100.0) * (weapon_speed_max - weapon_speed_min)) + weapon_speed_min)
|
||||||
|
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +130,7 @@ func (s StatsRequest) Valid() bool {
|
|||||||
s.ScannerRadius + s.Acceleration + s.TurnSpeed + s.FireRate)
|
s.ScannerRadius + s.Acceleration + s.TurnSpeed + s.FireRate)
|
||||||
|
|
||||||
// allowing for 50 pts in every category
|
// allowing for 50 pts in every category
|
||||||
if total > 400 {
|
if total > 500 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
Loading…
Reference in New Issue
Block a user