-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathattack.py
More file actions
executable file
·62 lines (56 loc) · 1.63 KB
/
attack.py
File metadata and controls
executable file
·62 lines (56 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python
from ROOT import TCanvas,TH1F,TH2F,TGraphErrors
import numpy as np
import math
import dice
from subprocess import call
damagehisto=TH1F("damage","damage",1001,-0.5,1000.5)
dmhisto=TH2F("dam","dam",70,-0.5,69.5,1001,-0.5,1000.5)
bethune=dice.fighter("Bethune")
gs=dice.pfWeapon("Greatsword",[35,31,26,21],2*[6],35,4,2,10*[6])
bethune.add(gs)
#dragon=dice.fighter("Mature Adult Red Dragon")
#bite=dice.pfWeapon("Bite",[28],2*[8],16,2,2)
#claw=dice.pfWeapon("Claws",2*[28],2*[6],11)
#wings=dice.pfWeapon("Wings",2*[26],[8],5)
#tail=dice.pfWeapon("tailslap",[26],2*[6],16)
#dragon.add(bite)
#dragon.add(claw)
#dragon.add(wings)
#dragon.add(tail)
AC=[]
dam_pa=[]
dam_err_pa=[]
ac_err=[]
nevents=5000
acrange=range(10,50)
AC=[]
dam=[]
dam_err=[]
ac_err=[]
for ac in acrange:
for ii in range(nevents):
dama=bethune.fullAttack(ac)
damagehisto.Fill(dama)
dmhisto.Fill(ac,dama)
print "AC= "+str(ac)+" Damage= "+str(damagehisto.GetMean())+"+/-"+str(damagehisto.GetRMS())
AC.append(ac+0.01)
dam.append(damagehisto.GetMean())
dam_err.append(damagehisto.GetRMS()/math.sqrt(nevents))
ac_err.append(0.01)
damagehisto.Reset()
can=TCanvas("Damage","Damage",800,600)
graph=TGraphErrors(len(dam),np.asarray(AC),np.asarray(dam),np.asarray(ac_err),np.asarray(dam_err))
graph.SetFillColor(0)
graph.SetMarkerStyle(20)
graph.GetXaxis().SetTitle("enemy AC")
graph.GetYaxis().SetTitle("DPR")
graph.SetTitle("Dragon")
graph.Draw("ALP")
can.BuildLegend()
can.SetTitle("Weapon Damage")
can.Print("dragon.pdf")
dmhisto.Draw()
can.Print("dragon2dplot.pdf")
#call(["open", "comp.pdf"])
#call(["open","2dplot.pdf"])