Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
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
a668bd6e
Commit
a668bd6e
authored
2 years ago
by
ImmuState
Committed by
Melledy
2 years ago
Browse files
Options
Download
Email Patches
Plain Diff
Check materials and mora
parent
5db5c90a
development
LintRatchet
stable
v1.4.4
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.3.1
v1.3.0
v1.2.2-dev
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/main/java/emu/grasscutter/data/common/MaterialItemsData.java
+0
-22
...n/java/emu/grasscutter/data/common/MaterialItemsData.java
src/main/java/emu/grasscutter/data/excels/ForgeData.java
+3
-3
src/main/java/emu/grasscutter/data/excels/ForgeData.java
src/main/java/emu/grasscutter/game/managers/ForgingManager/ForgingManager.java
+30
-6
...sscutter/game/managers/ForgingManager/ForgingManager.java
with
33 additions
and
31 deletions
+33
-31
src/main/java/emu/grasscutter/data/common/MaterialItemsData.java
deleted
100644 → 0
View file @
5db5c90a
package
emu.grasscutter.data.common
;
import
java.util.List
;
public
class
MaterialItemsData
{
private
int
id
;
private
int
count
;
public
int
getId
()
{
return
this
.
id
;
}
public
void
setId
(
int
value
)
{
this
.
id
=
value
;
}
public
int
getCount
()
{
return
this
.
count
;
}
public
void
setCount
(
int
value
)
{
this
.
count
=
value
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/emu/grasscutter/data/excels/ForgeData.java
View file @
a668bd6e
...
...
@@ -5,7 +5,7 @@ import java.util.List;
import
emu.grasscutter.data.GameResource
;
import
emu.grasscutter.data.ResourceType
;
import
emu.grasscutter.data.ResourceType.LoadPriority
;
import
emu.grasscutter.data.common.
MaterialItems
Data
;
import
emu.grasscutter.data.common.
ItemParam
Data
;
import
emu.grasscutter.data.common.OpenCondData
;
@ResourceType
(
name
=
{
"ForgeExcelConfigData.json"
},
loadPriority
=
LoadPriority
.
HIGHEST
)
...
...
@@ -18,7 +18,7 @@ public class ForgeData extends GameResource {
private
int
queueNum
;
private
int
scoinCost
;
private
int
priority
;
private
List
<
MaterialItems
Data
>
materialItems
;
private
List
<
ItemParam
Data
>
materialItems
;
@Override
public
int
getId
()
{
...
...
@@ -53,7 +53,7 @@ public class ForgeData extends GameResource {
return
priority
;
}
public
List
<
MaterialItems
Data
>
getMaterialItems
()
{
public
List
<
ItemParam
Data
>
getMaterialItems
()
{
return
materialItems
;
}
...
...
This diff is collapsed.
Click to expand it.
src/main/java/emu/grasscutter/game/managers/ForgingManager/ForgingManager.java
View file @
a668bd6e
...
...
@@ -5,8 +5,10 @@ import java.util.Map;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.GameData
;
import
emu.grasscutter.data.common.ItemParamData
;
import
emu.grasscutter.data.excels.ForgeData
;
import
emu.grasscutter.game.inventory.GameItem
;
import
emu.grasscutter.game.inventory.ItemType
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.net.proto.ForgeStartReqOuterClass
;
import
emu.grasscutter.net.proto.ForgeQueueDataOuterClass.ForgeQueueData
;
...
...
@@ -16,8 +18,6 @@ import emu.grasscutter.server.packet.send.PacketForgeFormulaDataNotify;
import
emu.grasscutter.server.packet.send.PacketForgeGetQueueDataRsp
;
import
emu.grasscutter.server.packet.send.PacketForgeStartRsp
;
import
emu.grasscutter.utils.Utils
;
import
emu.grasscutter.utils.ConfigContainer.Game
;
import
net.bytebuddy.dynamic.TypeResolutionStrategy.Active
;
public
class
ForgingManager
{
private
final
Player
player
;
...
...
@@ -114,17 +114,41 @@ public class ForgingManager {
// Get the required forging information for the target item.
if
(!
GameData
.
getForgeDataMap
().
containsKey
(
req
.
getForgeId
()))
{
this
.
player
.
sendPacket
(
new
PacketForgeStartRsp
(
Retcode
.
RET_FAIL
));
//ToDo: Probably the wrong return code.
Grasscutter
.
getLogger
().
error
(
"Missing forgeId"
);
return
;
}
ForgeData
forgeData
=
GameData
.
getForgeDataMap
().
get
(
req
.
getForgeId
());
// Check if we have enough of each material.
// ToDo.
for
(
var
material
:
forgeData
.
getMaterialItems
())
{
if
(
material
.
getItemId
()
==
0
)
{
continue
;
}
// Consume material.
// ToDo.
int
currentCount
=
this
.
player
.
getInventory
().
getInventoryTab
(
ItemType
.
ITEM_MATERIAL
).
getItemById
(
material
.
getItemId
()).
getCount
();
if
(
currentCount
<
material
.
getCount
()
*
req
.
getForgeCount
())
{
this
.
player
.
sendPacket
(
new
PacketForgeStartRsp
(
Retcode
.
RET_FORGE_POINT_NOT_ENOUGH
));
//ToDo: Probably the wrong return code.
return
;
}
}
// Check if we have enough Mora.
if
(
this
.
player
.
getMora
()
<
forgeData
.
getScoinCost
()
*
req
.
getForgeCount
())
{
this
.
player
.
sendPacket
(
new
PacketForgeStartRsp
(
Retcode
.
RET_FORGE_POINT_NOT_ENOUGH
));
//ToDo: Probably the wrong return code.
return
;
}
// Consume material and Mora.
for
(
var
material
:
forgeData
.
getMaterialItems
())
{
if
(
material
.
getItemId
()
==
0
)
{
continue
;
}
this
.
player
.
getInventory
().
removeItem
(
material
.
getItemId
(),
material
.
getCount
()
*
req
.
getForgeCount
());
}
this
.
player
.
setMora
(
this
.
player
.
getMora
()
-
forgeData
.
getScoinCost
()
*
req
.
getForgeCount
());
// Create and add active forge.
ActiveForgeData
activeForge
=
new
ActiveForgeData
();
...
...
This diff is collapsed.
Click to expand it.
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
Menu
Projects
Groups
Snippets
Help