Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
ziqian zhang
Grasscutter
Commits
1586bab5
Commit
1586bab5
authored
Apr 27, 2022
by
Melledy
Browse files
Gacha banner tweaks
Removed min/maxItemType Added configurable base weight values for banners
parent
1130138a
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/game/gacha/GachaBanner.java
View file @
1586bab5
...
...
@@ -16,8 +16,8 @@ public class GachaBanner {
private
int
sortId
;
private
int
[]
rateUpItems1
;
private
int
[]
rateUpItems2
;
private
int
minItemType
=
1
;
private
int
maxItemType
=
2
;
private
int
baseYellowWeight
=
60
;
// Max 10000
private
int
basePurpleWeight
=
510
;
// Max 10000
private
int
eventChance
=
50
;
// Chance to win a featured event item
private
int
softPity
=
75
;
private
int
hardPity
=
90
;
...
...
@@ -63,6 +63,14 @@ public class GachaBanner {
return
sortId
;
}
public
int
getBaseYellowWeight
()
{
return
baseYellowWeight
;
}
public
int
getBasePurpleWeight
()
{
return
basePurpleWeight
;
}
public
int
[]
getRateUpItems1
()
{
return
rateUpItems1
;
}
...
...
@@ -70,14 +78,6 @@ public class GachaBanner {
public
int
[]
getRateUpItems2
()
{
return
rateUpItems2
;
}
public
int
getMinItemType
()
{
return
minItemType
;
}
public
int
getMaxItemType
()
{
return
maxItemType
;
}
public
int
getSoftPity
()
{
return
softPity
-
1
;
...
...
src/main/java/emu/grasscutter/game/gacha/GachaManager.java
View file @
1586bab5
...
...
@@ -15,6 +15,7 @@ import emu.grasscutter.Grasscutter;
import
emu.grasscutter.data.GameData
;
import
emu.grasscutter.data.def.ItemData
;
import
emu.grasscutter.game.avatar.Avatar
;
import
emu.grasscutter.game.gacha.GachaBanner.BannerType
;
import
emu.grasscutter.game.inventory.GameItem
;
import
emu.grasscutter.game.inventory.ItemType
;
import
emu.grasscutter.game.inventory.MaterialType
;
...
...
@@ -125,8 +126,8 @@ public class GachaManager {
int
itemId
=
0
;
int
bonusYellowChance
=
gachaInfo
.
getPity5
()
>=
banner
.
getSoftPity
()
?
100
*
(
gachaInfo
.
getPity5
()
-
banner
.
getSoftPity
()
-
1
):
0
;
int
yellowChance
=
60
+
(
int
)
Math
.
floor
(
100
f
*
(
gachaInfo
.
getPity5
()
/
(
banner
.
getSoftPity
()
-
1
D
)))
+
bonusYellowChance
;
int
purpleChance
=
10000
-
(
510
+
(
int
)
Math
.
floor
(
790
f
*
(
gachaInfo
.
getPity4
()
/
8
f
)));
int
yellowChance
=
banner
.
getBaseYellowWeight
()
+
(
int
)
Math
.
floor
(
100
f
*
(
gachaInfo
.
getPity5
()
/
(
banner
.
getSoftPity
()
-
1
D
)))
+
bonusYellowChance
;
int
purpleChance
=
10000
-
(
banner
.
getBasePurpleWeight
()
+
(
int
)
Math
.
floor
(
790
f
*
(
gachaInfo
.
getPity4
()
/
8
f
)));
if
(
random
<=
yellowChance
||
gachaInfo
.
getPity5
()
>=
banner
.
getHardPity
())
{
if
(
banner
.
getRateUpItems1
().
length
>
0
)
{
...
...
@@ -142,7 +143,7 @@ public class GachaManager {
}
if
(
itemId
==
0
)
{
int
typeChance
=
this
.
randomRange
(
banner
.
get
MinItemType
(),
banner
.
getMaxItemType
()
);
int
typeChance
=
this
.
randomRange
(
banner
.
get
BannerType
()
==
BannerType
.
WEAPON
?
2
:
1
,
banner
.
getBannerType
()
==
BannerType
.
EVENT
?
1
:
2
);
if
(
typeChance
==
1
)
{
itemId
=
getRandom
(
this
.
yellowAvatars
);
}
else
{
...
...
@@ -163,7 +164,7 @@ public class GachaManager {
}
if
(
itemId
==
0
)
{
int
typeChance
=
this
.
randomRange
(
banner
.
get
MinItemType
(),
banner
.
getMaxItemType
()
);
int
typeChance
=
this
.
randomRange
(
banner
.
get
BannerType
()
==
BannerType
.
WEAPON
?
2
:
1
,
banner
.
getBannerType
()
==
BannerType
.
EVENT
?
1
:
2
);
if
(
typeChance
==
1
)
{
itemId
=
getRandom
(
this
.
purpleAvatars
);
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment