Difference between revisions of "Leagues"

From WikiManual
Jump to: navigation, search
m
m
Line 12: Line 12:
 
:Will just keep stashing it here as i find it.
 
:Will just keep stashing it here as i find it.
  
 +
==General Declarations==
 
<pre>
 
<pre>
 
General  
 
General  
Line 48: Line 49:
 
</pre>
 
</pre>
 
<pre>
 
<pre>
 +
 
General
 
General
 
Declarations
 
Declarations
Line 66: Line 68:
 
Private eye11 As Integer 'for eye fudging.  Search 'fudge' to see what I mean
 
Private eye11 As Integer 'for eye fudging.  Search 'fudge' to see what I mean
 
</pre>
 
</pre>
 +
==General Startsim==
 
<pre>
 
<pre>
 
General
 
General
Line 75: Line 78:
 
   End If
 
   End If
 
</pre>
 
</pre>
 +
==General StartSimul==
 
<pre>
 
<pre>
 
General
 
General
Line 92: Line 96:
 
End Sub
 
End Sub
 
</pre>
 
</pre>
 +
==General FindSpecies==
 
<pre>
 
<pre>
 
General
 
General
Line 109: Line 114:
  
 
</pre>
 
</pre>
 +
==MDIForm==
 
<pre>
 
<pre>
 
MDIForm1 (Code)
 
MDIForm1 (Code)
Line 119: Line 125:
 
End Sub
 
End Sub
 
</pre>
 
</pre>
 +
==RerunCheck==
 
<pre>
 
<pre>
 
RerunCheck
 
RerunCheck
Line 127: Line 134:
  
 
</pre>
 
</pre>
 +
==LeagueCheck==
 
<pre>
 
<pre>
 
LeagueCheck
 
LeagueCheck
Line 193: Line 201:
  
 
</pre>
 
</pre>
 +
==StartNew==
 
<pre>
 
<pre>
 
StartNew
 
StartNew
Line 233: Line 242:
 
End Sub
 
End Sub
 
   
 
   
 +
</pre>
 +
 +
==F1 Override code as of 2.42.n ==
 +
(not sure in what modual this is in. {{User:Griz/sig}})
 +
 +
:Eric: I will add max cycles / Max rounds to my list of future work items.
 +
:These will be post 2.43 however.
 +
 +
<pre>
 +
If TmpOpts.F1 = True Then
 +
 +
'Zero out all Costs
 +
For t = 1 To 70
 +
TmpOpts.Costs(t) = 0
 +
Next t
 +
 +
'Now set the ones that matter
 +
TmpOpts.Costs(SHOTCOST) = 2
 +
TmpOpts.Costs(COSTSTORE) = 0.04
 +
TmpOpts.Costs(CONDCOST) = 0.004
 +
TmpOpts.Costs(MOVECOST) = 0.05
 +
TmpOpts.Costs(TIECOST) = 2
 +
TmpOpts.Costs(SHOTCOST) = 2
 +
TmpOpts.Costs(VENOMCOST) = 1
 +
TmpOpts.Costs(POISONCOST) = 1
 +
TmpOpts.Costs(SLIMECOST) = 1
 +
TmpOpts.Costs(SHELLCOST) = 1
 +
TmpOpts.Costs(COSTMULTIPLIER) = 1
 +
TmpOpts.DynamicCosts = False
 +
 +
TmpOpts.CorpseEnabled = False ' No Corpses
 +
TmpOpts.DayNight = False ' Sun never sets
 +
TmpOpts.FieldWidth = 9237
 +
TmpOpts.FieldHeight = 6928
 +
TmpOpts.FieldSize = 1
 +
TmpOpts.MaxEnergy = 40 ' Veggy nrg per cycle
 +
TmpOpts.MaxPopulation = 25 ' Veggy max population
 +
TmpOpts.MinVegs = 10
 +
TmpOpts.Pondmode = False
 +
TmpOpts.PhysBrown = 0 ' Animal Motion
 +
TmpOpts.Toroidal = True
 +
 +
TmpOpts.BadWastelevel = 10000 ' Pretty high Waste Threshold
 +
 +
For t = 0 To TmpOpts.SpeciesNum - 1
 +
TmpOpts.Specie(t).Fixed = False 'Nobody is fixed
 +
TmpOpts.Specie(t).Mutables.Mutations = False 'Nobody can mutate
 +
TmpOpts.Specie(t).CantSee = False
 +
TmpOpts.Specie(t).DisableDNA = False
 +
TmpOpts.Specie(t).CantReproduce = False
 +
TmpOpts.Specie(t).DisableMovementSysvars = False
 +
Next t
 +
 +
TmpOpts.Specie(0).Veg = True 'Force the first entry to be a veggy
 +
TmpOpts.Specie(0).qty = 10 ' Do this so that eye fudge works
 +
 +
TmpOpts.FixedBotRadii = False
 +
TmpOpts.NoShotDecay = False
 +
TmpOpts.DisableTies = False
 +
TmpOpts.RepopAmount = 10
 +
TmpOpts.RepopCooldown = 1
 +
TmpOpts.MaxVelocity = 180
 +
TmpOpts.VegFeedingMethod = 0 ' Straight nrg /cycle feeding method
 +
TmpOpts.VegFeedingToBody = 0.5 ' 50/50 nrg/body veggy feeding ratio
 +
TmpOpts.SunUp = False ' Turn off bringing the sun up due to a threshold
 +
TmpOpts.SunDown = False ' Turn off setting the sun due to a threshold
 +
TmpOpts.CoefficientElasticity = 0 ' Collisions are soft.
 +
TmpOpts.Ygravity = 0
 +
 +
' Surface Friction - Metal Option
 +
TmpOpts.Zgravity = 2
 +
TmpOpts.CoefficientStatic = 0.6
 +
TmpOpts.CoefficientKinetic = 0.4
 +
 +
'No Fluid Resistance
 +
TmpOpts.Viscosity = 0#
 +
TmpOpts.Density = 0#
 +
 +
'Shot Energy Physics
 +
TmpOpts.EnergyProp = 1 ' 100% normal shot nrg
 +
TmpOpts.EnergyExType = True ' Use Proportional shot nrg exchange method
 +
 +
DispSettings
 +
End If
 
</pre>
 
</pre>

Revision as of 19:02, 24 December 2006

Code/Debugging/Fixes/Changes for Leagues

see also: DeBugging and Bug_Reports

this is a Work In Progress



Holy crap!!!
League code is all over the place!
Will just keep stashing it here as i find it.

General Declarations

General 
Declarations

Public Type datispecie
  Skin(13) As Integer
  path As String
  Name As String
  Stnrg As Integer
  Veg As Boolean
  Fixed As Boolean
  color As Long
  Colind As Integer
  Postp As Single
  Poslf As Single
  Posdn As Single
  Posrg As Single
  qty As Integer
  Comment As String
  Leaguefilecomment As String
  Mutables As mutationprobs
  CantSee As Boolean                ' Flag indicating eyes should be turned off for this 

species
  DisableDNA As Boolean             ' Flag indicating DNA should not execute for 

this species
  DisableMovementSysvars As Boolean ' Flag indicating movement sysvars 

should be disabled for this species
  CantReproduce As Boolean          ' Flag indicating whether reproduction has 

been disabled for this species.
End Type

General
Declarations

'For League mode: (runs a series of F1 contests, 1 on 1)
Public LeagueMode As Boolean
Public Leaguename As String
Public Leaguererun As Boolean
Public LeagueEntrants(30) As datispecie 'all those already in the league
Public numLeagueEntrants As Integer
Public LeagueChallengers(31) As datispecie 'all those challenging (31 instead of 

30 for some loop functions)
Public Defender As Integer 'couple used to determine which bots are facing 

which in League mode
Public Attacker As Integer
Private eye11 As Integer 'for eye fudging.  Search 'fudge' to see what I mean

General Startsim

General
Startsim

If LeagueMode Then
    LeagueForm.Show
    SimOpts.TotRunCycle = -1
  End If

General StartSimul

General
StartSimul

'Restart
  'Leaguemode handles restarts differently so only restart here if not in 

leaguemode
  If totnvegs = 0 And RestartMode And Not LeagueMode Then
  ' totnvegs = 1
  ' Contests = Contests + 1
    ReStarts = ReStarts + 1
  ' Form1.StartSimul
    StartAnotherRound = True
  End If
End Sub

General FindSpecies

General
FindSpecies

  If TotSpecies = 1 Then
'    If Not LeagueMode Then
      ContestMode = False
      MDIForm1.F1Piccy.Visible = False
      Contest_Form.Visible = False
      t = MsgBox("You have only selected one species for combat. Formula 1 

mode disabled", vbOKOnly)
      Exit Sub
 '   End If
  End If

MDIForm

MDIForm1 (Code)

Private Sub Leagues_Click()
 optionsform.SSTab1.Tab = 4
  NetEvent.Timer1.Enabled = False
  NetEvent.Hide
  optionsform.Show vbModal
End Sub

RerunCheck

RerunCheck

Private Sub RerunCheck_Click()
  Leaguererun = CBool(RerunCheck.value)
End Sub

LeagueCheck

LeagueCheck

Private Sub LeagueCheck_Click()
  If LeagueCheck.value = 1 Then
    If F1Check.value <> 1 Then
      F1Check.value = 1
      F1check_Click
    End If
    LeagueMode = True
    TmpOpts.League = True
    
    If Leaguetype(0).value = False Then
      Leaguetype(0).value = True
    End If
  
  Else
    TmpOpts.League = False
    LeagueMode = False
    'Leaguetype(0).value = False
  End If
End Sub

Private Sub LeagueAutoCheck()
  If LeagueCheck.value <> 1 Then
    LeagueCheck.value = 1
    LeagueCheck_Click
  End If
End Sub

Private Sub LeagueF1Option_Click()
  Leaguename.text = "F1"
  LeagueAutoCheck
End Sub

Private Sub LeagueF2Option_Click()
  Leaguename.text = "F2"
  LeagueAutoCheck
End Sub

Private Sub LeageSBOption_Click()
  Leaguename.text = "Shortbot"
  LeagueAutoCheck
End Sub

Private Sub LeagueMBOption_Click()
  Leaguename.text = "Multibot"
  LeagueAutoCheck
End Sub

Private Sub Leaguetype_Click(Index As Integer)
  'If Leaguetype(Index).value = False Then
  ''  Leaguetype(Index).value = True
  'End If
End Sub

Private Sub LightText_lostfocus()
  Dim a As Single
  a = val(LightText.text)
  If a < LightUpDn.Min Then a = LightUpDn.Min
  If a > LightUpDn.Max Then a = LightUpDn.Max
  LightUpDn.value = a
  TmpOpts.LightIntensity = a
End Sub

StartNew

StartNew

If LeagueMode = True Then LeagueForm.Visible = True ' EricL 3/20/2006 Have 

to bring up league form after Options dialog goes away
  
  'Form1.Active = True
  
    'this just tricks the program into thinking we have enough
  'species for F1 mode.
  'If TmpOpts.League = True And TmpOpts.SpeciesNum = 2 Then
  '  additem TmpOpts.Specie(1).Name
  '  TmpOpts.SpeciesNum = TmpOpts.SpeciesNum + 1
  'End If
  
  SimOpts = TmpOpts
  
  If SimOpts.League = True Then
    LeagueMode = True 'should be anyway, but sometimes when
                      'restarting a league it screws up
    LeagueInputChallengers
    SetupLeague_Options
  '  SimOpts.F1 = True
    LeagueForm.F1ChallengeOption_Click
  End If
  
  
  If Form1.Active Then Form1.SecTimer.Enabled = True
  
  
  StartAnotherRound = True ' Set true for first simulation.  Will get set true if 

running leagues or using auto-restart mode
  While StartAnotherRound
    StartAnotherRound = False
    Form1.StartSimul
  Wend
End Sub
 

F1 Override code as of 2.42.n

(not sure in what modual this is in. Griztalk)

Eric: I will add max cycles / Max rounds to my list of future work items.
These will be post 2.43 however.
If TmpOpts.F1 = True Then

'Zero out all Costs
For t = 1 To 70
TmpOpts.Costs(t) = 0
Next t

'Now set the ones that matter
TmpOpts.Costs(SHOTCOST) = 2
TmpOpts.Costs(COSTSTORE) = 0.04
TmpOpts.Costs(CONDCOST) = 0.004
TmpOpts.Costs(MOVECOST) = 0.05
TmpOpts.Costs(TIECOST) = 2
TmpOpts.Costs(SHOTCOST) = 2
TmpOpts.Costs(VENOMCOST) = 1
TmpOpts.Costs(POISONCOST) = 1
TmpOpts.Costs(SLIMECOST) = 1
TmpOpts.Costs(SHELLCOST) = 1
TmpOpts.Costs(COSTMULTIPLIER) = 1
TmpOpts.DynamicCosts = False

TmpOpts.CorpseEnabled = False ' No Corpses
TmpOpts.DayNight = False ' Sun never sets
TmpOpts.FieldWidth = 9237
TmpOpts.FieldHeight = 6928
TmpOpts.FieldSize = 1
TmpOpts.MaxEnergy = 40 ' Veggy nrg per cycle
TmpOpts.MaxPopulation = 25 ' Veggy max population
TmpOpts.MinVegs = 10
TmpOpts.Pondmode = False
TmpOpts.PhysBrown = 0 ' Animal Motion
TmpOpts.Toroidal = True

TmpOpts.BadWastelevel = 10000 ' Pretty high Waste Threshold

For t = 0 To TmpOpts.SpeciesNum - 1
TmpOpts.Specie(t).Fixed = False 'Nobody is fixed
TmpOpts.Specie(t).Mutables.Mutations = False 'Nobody can mutate
TmpOpts.Specie(t).CantSee = False
TmpOpts.Specie(t).DisableDNA = False
TmpOpts.Specie(t).CantReproduce = False
TmpOpts.Specie(t).DisableMovementSysvars = False
Next t

TmpOpts.Specie(0).Veg = True 'Force the first entry to be a veggy
TmpOpts.Specie(0).qty = 10 ' Do this so that eye fudge works

TmpOpts.FixedBotRadii = False
TmpOpts.NoShotDecay = False
TmpOpts.DisableTies = False
TmpOpts.RepopAmount = 10
TmpOpts.RepopCooldown = 1
TmpOpts.MaxVelocity = 180
TmpOpts.VegFeedingMethod = 0 ' Straight nrg /cycle feeding method
TmpOpts.VegFeedingToBody = 0.5 ' 50/50 nrg/body veggy feeding ratio
TmpOpts.SunUp = False ' Turn off bringing the sun up due to a threshold
TmpOpts.SunDown = False ' Turn off setting the sun due to a threshold
TmpOpts.CoefficientElasticity = 0 ' Collisions are soft.
TmpOpts.Ygravity = 0

' Surface Friction - Metal Option
TmpOpts.Zgravity = 2
TmpOpts.CoefficientStatic = 0.6
TmpOpts.CoefficientKinetic = 0.4

'No Fluid Resistance
TmpOpts.Viscosity = 0#
TmpOpts.Density = 0#

'Shot Energy Physics
TmpOpts.EnergyProp = 1 ' 100% normal shot nrg
TmpOpts.EnergyExType = True ' Use Proportional shot nrg exchange method

DispSettings
End If