Date: 2020/04/08 20:22:38 UTC-07:00
Type: Denizen Script
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
DamageProc:
type: procedure
debug: false
definitions: EntityA|EntityB|Style|Spell
SurvivalFixM:
- if <[EntityA].item_in_hand.material.name.contains[Diamond]>:
- define AttackBonus 50
- else if <[EntityA].item_in_hand.material.name.contains[Gold]>:
- define AttackBonus 40
- else if <[EntityA].item_in_hand.material.name.contains[Iron]>:
- define AttackBonus 30
- else if <[EntityA].item_in_hand.material.name.contains[Stone]>:
- define AttackBonus 20
- else:
- define AttackBonus 10
SurvivalFixR:
- if <[EntityA].item_in_hand.material.name.contains[Bow]>:
- define AttackBonus 25
- else if <[EntityA].item_in_hand.material.name.contains[Crossbow]>:
- define AttackBonus 50
script:
# % ██ [ Melee ] ██
- if <[style].contains_any[ENTITY_ATTACK|ENTITY_SWEEP_ATTACK]>:
# - ██ Define Entity [A] {AttackLvl}||{StrengthLvl}||{AttackBonus}||{StrengthBonus}||{Max Hit}
- define Attack <[EntityA].flag[Behrry.Skill.Attack.Level]||1>
- define Strength <[EntityA].flag[Behrry.Skill.Strength.Level]||1>
- define AttackBonus <[EntityA].flag[Attackbonus]||0>
- define StrengthBonus <[EntityA].flag[Strengthbonus]||0>
- define MaxHit <[Strength].add[3].mul[<[Strengthbonus].add[64]>].div[640].add[0.5].round_down>
# $ Temporary Survival Fix
- inject Locally SurvivalFixM
# - ██ Define Entity [A] {Attack Roll}||{Maximum Effective Level}||{Maximum Effective Base}
- define AttackRoll <[Attack].add[3].mul[<[Attackbonus].add[64]>]>
- define MaxEffectiveLevelA <[Attackroll].sub[<element[11].mul[<[Attackbonus]>]>].sub[704].div[<[Attackbonus].add[64]>]>
- define MaxEffectiveBonusA <[Attack].mul[-64].add[<[Attackroll]>].sub[704].div[<[Attack].add[11]>]>
# - ██ Define Entity [B] {Defense Roll}||{Defense Bonus / Equipment Bonus}||{Defense Roll}
- define Defense <[EntityB].flag[Behrry.Skill.Defence.Level]||1>
- define DefenseBonus <[EntityB].flag[DefenseBonus]||0>
- define DefenseRoll <[Defense].mul[<[DefenseBonus].add[64]>]>
# - ██ Define Entity [A] {Accuracy}||{Hit}
- if <[AttackRoll]> > <[DefenseRoll]>:
- define Accuracy <element[1].sub[<[DefenseRoll].add[2].div[<element[2].mul[<[AttackRoll].add[1]>]>]>]>
- else:
- define Accuracy <[AttackRoll].div[<[DefenseRoll].add[1].mul[2]>]>
#% Old - define Accuracy <Tern[<[AttackRoll].is[MORE].than[<[DefenseRoll]>]>:]:<element[1].sub[<[DefenseRoll].add[2].div[<element[2].mul[<[AttackRoll].add[1]>]>]>]>||<[AttackRoll].div[<[DefenseRoll].add[1].mul[2]>]>>
- define Hit <util.random.decimal.is[LESS].than[<[Accuracy]>]>
# - ██ Define {Damage}
- if <[Hit]>:
- define damage <util.random.int[1].to[<[MaxHit]>]>
- else:
- define damage 1
- determine <[Damage]>
- stop
# % ██ [Ranged ] ██
- if <[style].contains_any[PROJECTILE]>:
# - ██ Define Entity [A] {RangedLvl}||{RangedBonus}||{Max Hit}
- define Ranged <[EntityA].flag[Behrry.Skill.Ranged.Level]||1>
- define RangedBonus <[EntityA].flag[RangedBonus]||0>
- define RangedStrength <[EntityA].flag[RangedStrength]||0>
- define MaxHit <[Ranged].add[3].mul[<[RangedStrength].mul[<element[1].add[<[RangedStrength]>]>]>]||1>
# $ Temporary Survival Fix
- inject Locally SurvivalFixR
# - ██ Define Entity [A] {Attack Roll}||{Maximum Effective Level}||{Maximum Effective Base}
- define AttackRoll <[ranged].add[3].mul[<[rangedbonus].add[64]>]>
- define MaxEffectiveLevelA <[Attackroll].sub[<element[11].mul[<[RangedBonus]>]>].sub[704].div[<[RangedBonus].add[64]>]>
- define MaxEffectiveBonusA <[Ranged].mul[-64].add[<[Attackroll]>].sub[704].div[<[Ranged].add[11]>]>
# - ██ Define Entity [B] {Defense Roll}||{Defense Bonus / Equipment Bonus}||{Defense Roll}
- define Defense <[EntityB].flag[Behrry.Skill.Defence.Level]||1>
- define DefenseBonus <[EntityB].flag[DefenseBonus]||0>
- define DefenseRoll <[Defense].mul[<[DefenseBonus].add[64]>]>
# - ██ Define Entity [A] {Accuracy}||{Hit}
#- define Accuracy <Tern[<[AttackRoll].is[MORE].than[<[DefenseRoll]>]>:]:<element[1].sub[<[DefenseRoll].add[2].div[<element[2].mul[<[AttackRoll].add[1]>]>]>]>||<[AttackRoll].div[<[DefenseRoll].add[1].mul[2]>]>>
- if <[AttackRoll]> > <[DefenseRoll]>:
- define Accuracy <element[1].sub[<[DefenseRoll].add[2].div[<element[2].mul[<[AttackRoll].add[1]>]>]>]>
- else:
- define Accuracy <[AttackRoll].div[<[DefenseRoll].add[1].mul[2]>]>
- define Hit <util.random.decimal.is[LESS].than[<[Accuracy]>]>
# - ██ Define {Damage}
- if <[Hit]>:
- define Damage <util.random.int[1].to[<[MaxHit]>]>
- else:
- define Damage 1
#- define damage <[Damage].add[<tern[<[Hit]>]:<util.random.int[1].to[<[MaxHit]>]>||0>]>
- determine <[Damage]>
- stop
# # % ██ [Magic ] ██
# - if <[style].contains_any[MAGIC]> && <[Spell]> != Null:
# # - ██ Define Entity [A] {MagicLvl}||{MagicBonus}||{MagicStrength}||{Max Hit}
# - define Magic <[EntityA].flag[MagicLevel]||1>
# - define MagicBonus <[EntityA].flag[MagicBonus]||0>
# - define MagicStrength <[EntityA].flag[MagicStrength]||0>
# - define MaxHit <script.yaml_key[Spell.<[Spell]>].mul[<element[1].add[<[MagicStrength]>]>]||1>
#
# # - ██ Define Entity [A] {Attack Roll}||{Maximum Effective Level}||{Maximum Effective Base}
# - define AttackRoll <[Magic].add[3].mul[<[MagicBonus].add[64]>]>
# - define MaxEffectiveLevelA <[Attackroll].sub[<element[11].mul[<[MagicBonus]>]>].sub[704].div[<[MagicBonus].add[64]>]>
# - define MaxEffectiveBonusA <[Magic].mul[-64].add[<[Attackroll]>].sub[704].div[<[Magic].add[11]>]>
#
# # - ██ Define Entity [B] {MagicLvl}||{Defense Roll}||{Defense Bonus / Equipment Bonus}||{Defense Roll}
# - define MagicB <[EntityB].flag[MagicLevel]||1>
# - define Defense <[EntityB].flag[DefenseLevel]||1>
# - define DefenseBonus <[EntityB].flag[DefenseBonus]||0>
# - define DefenseRoll <[MagicB].mul[0.3].add[<[Defense].mul[0.7]>].mul[<[DefenseBonus].add[64]>]>
#
# # - ██ Define Entity [A] {Accuracy}||{Hit}
# - define Accuracy <Tern[<[AttackRoll].is[MORE].than[<[DefenseRoll]>]>]:<element[1].sub[<[DefenseRoll].add[2].div[<element[2].mul[<[AttackRoll].add[1]>]>]>]>||<[AttackRoll].div[<[DefenseRoll].add[1].mul[2]>]>>
# - define Hit <util.random.decimal.is[LESS].than[<[Accuracy]>]>
#
# # - ██ Define {Damage}
# - define damage 0
# - define damage <[Damage].add[<tern[<[Hit]>]:<util.random.int[1].to[<[MaxHit]>]>||0>]>
# - determine <[Damage]>
#
# # % ██ [ Magic Spell Ref ] ██
# Spell:
# "Air Strike": 2
# "Water Strike": 4
# "Vex Strike": 6
# "Fire Strike": 8
#
# "Air Bolt": 9
# "Water Bolt": 10
# "Fraility": 11
# "Leech": 12
# "Fire Bolt": 12
#
# "Crumble undead": 15
# "Wind Blast": 13
# "Water Blast": 14
# "Decrepify": 15
# "Iban Blast": 25
# #"Magic Dart": 10-19
# "Fire Blast": 16
#
# "Wind Wave": 17
# "Water Wave": 18
# "vexsomething": 19
# "Fire Wave": 20
#
# "Wind Surge": 21
# "Water Surge": 22
# "vexsomething": 23
# "Fire Surge": 24