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
02a56fce
Commit
02a56fce
authored
Jul 23, 2022
by
akatatsu27
Browse files
Major questing improvements
parent
89717f3c
Changes
35
Hide whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/data/GameData.java
View file @
02a56fce
...
...
@@ -30,7 +30,7 @@ public class GameData {
// ExcelConfigs
private
static
final
Int2ObjectMap
<
PlayerLevelData
>
playerLevelDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
AvatarData
>
avatarDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
AvatarLevelData
>
avatarLevelDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
AvatarSkillDepotData
>
avatarSkillDepotDataMap
=
new
Int2ObjectOpenHashMap
<>();
...
...
@@ -40,7 +40,7 @@ public class GameData {
private
static
final
Int2ObjectMap
<
AvatarPromoteData
>
avatarPromoteDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
AvatarTalentData
>
avatarTalentDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
ProudSkillData
>
proudSkillDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
ItemData
>
itemDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
ReliquaryLevelData
>
reliquaryLevelDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
ReliquaryAffixData
>
reliquaryAffixDataMap
=
new
Int2ObjectOpenHashMap
<>();
...
...
@@ -57,11 +57,11 @@ public class GameData {
private
static
final
Int2ObjectMap
<
GadgetData
>
gadgetDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
MonsterCurveData
>
monsterCurveDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
MonsterDescribeData
>
monsterDescribeDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
AvatarFlycloakData
>
avatarFlycloakDataMap
=
new
Int2ObjectLinkedOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
AvatarCostumeData
>
avatarCostumeDataMap
=
new
Int2ObjectLinkedOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
AvatarCostumeData
>
avatarCostumeDataItemIdMap
=
new
Int2ObjectLinkedOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
SceneData
>
sceneDataMap
=
new
Int2ObjectLinkedOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
FetterData
>
fetterDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
CodexQuestData
>
codexQuestDataMap
=
new
Int2ObjectOpenHashMap
<>();
...
...
@@ -76,7 +76,7 @@ public class GameData {
private
static
final
ArrayList
<
CodexReliquaryData
>
codexReliquaryArrayList
=
new
ArrayList
<>();
private
static
final
Int2ObjectMap
<
FetterCharacterCardData
>
fetterCharacterCardDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
RewardData
>
rewardDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
WorldAreaData
>
worldAreaDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
WorldLevelData
>
worldLevelDataMap
=
new
Int2ObjectOpenHashMap
<>();
private
static
final
Int2ObjectMap
<
DailyDungeonData
>
dailyDungeonDataMap
=
new
Int2ObjectOpenHashMap
<>();
...
...
@@ -108,33 +108,35 @@ public class GameData {
@Getter
private
static
final
Int2ObjectMap
<
MusicGameBasicData
>
musicGameBasicDataMap
=
new
Int2ObjectOpenHashMap
<>();
@Getter
private
static
final
Int2ObjectMap
<
PersonalLineData
>
personalLineDataMap
=
new
Int2ObjectOpenHashMap
<>();
@Getter
private
static
final
Int2ObjectMap
<
ChapterData
>
chapterDataMap
=
new
Int2ObjectOpenHashMap
<>();
@Getter
private
static
final
Int2ObjectMap
<
TriggerExcelConfigData
>
triggerExcelConfigDataMap
=
new
Int2ObjectOpenHashMap
<>();
@Getter
private
static
final
Map
<
String
,
ScriptSceneData
>
scriptSceneDataMap
=
new
HashMap
<>();
// Cache
private
static
Map
<
Integer
,
List
<
Integer
>>
fetters
=
new
HashMap
<>();
private
static
Map
<
Integer
,
List
<
ShopGoodsData
>>
shopGoods
=
new
HashMap
<>();
private
static
final
IntList
scenePointIdList
=
new
IntArrayList
();
public
static
Int2ObjectMap
<?>
getMapByResourceDef
(
Class
<?>
resourceDefinition
)
{
Int2ObjectMap
<?>
map
=
null
;
try
{
Field
field
=
GameData
.
class
.
getDeclaredField
(
Utils
.
lowerCaseFirstChar
(
resourceDefinition
.
getSimpleName
())
+
"Map"
);
field
.
setAccessible
(
true
);
map
=
(
Int2ObjectMap
<?>)
field
.
get
(
null
);
field
.
setAccessible
(
false
);
}
catch
(
Exception
e
)
{
Grasscutter
.
getLogger
().
error
(
"Error fetching resource map for "
+
resourceDefinition
.
getSimpleName
(),
e
);
}
return
map
;
}
public
static
Int2ObjectMap
<
String
>
getAbilityHashes
()
{
return
abilityHashes
;
}
public
static
Map
<
String
,
AbilityEmbryoEntry
>
getAbilityEmbryoInfo
()
{
return
abilityEmbryos
;
}
...
...
@@ -150,7 +152,7 @@ public class GameData {
public
static
Map
<
String
,
ScenePointEntry
>
getScenePointEntries
()
{
return
scenePointEntries
;
}
// TODO optimize
public
static
ScenePointEntry
getScenePointEntryById
(
int
sceneId
,
int
pointId
)
{
return
getScenePointEntries
().
get
(
sceneId
+
"_"
+
pointId
);
...
...
@@ -163,15 +165,15 @@ public class GameData {
public
static
Int2ObjectMap
<
HomeworldDefaultSaveData
>
getHomeworldDefaultSaveData
()
{
return
homeworldDefaultSaveData
;
}
public
static
Int2ObjectMap
<
SceneNpcBornData
>
getSceneNpcBornData
()
{
return
npcBornData
;
}
public
static
Int2ObjectMap
<
AvatarData
>
getAvatarDataMap
()
{
return
avatarDataMap
;
}
public
static
Int2ObjectMap
<
ItemData
>
getItemDataMap
()
{
return
itemDataMap
;
}
...
...
@@ -179,7 +181,7 @@ public class GameData {
public
static
Int2ObjectMap
<
AvatarSkillDepotData
>
getAvatarSkillDepotDataMap
()
{
return
avatarSkillDepotDataMap
;
}
public
static
Int2ObjectMap
<
AvatarSkillData
>
getAvatarSkillDataMap
()
{
return
avatarSkillDataMap
;
}
...
...
@@ -203,11 +205,11 @@ public class GameData {
public
static
Int2ObjectMap
<
WeaponLevelData
>
getWeaponLevelDataMap
()
{
return
weaponLevelDataMap
;
}
public
static
Int2ObjectMap
<
ReliquaryAffixData
>
getReliquaryAffixDataMap
()
{
return
reliquaryAffixDataMap
;
}
public
static
Int2ObjectMap
<
ReliquaryMainPropData
>
getReliquaryMainPropDataMap
()
{
return
reliquaryMainPropDataMap
;
}
...
...
@@ -219,7 +221,7 @@ public class GameData {
public
static
Int2ObjectMap
<
WeaponCurveData
>
getWeaponCurveDataMap
()
{
return
weaponCurveDataMap
;
}
public
static
Int2ObjectMap
<
AvatarCurveData
>
getAvatarCurveDataMap
()
{
return
avatarCurveDataMap
;
}
...
...
@@ -228,11 +230,11 @@ public class GameData {
ReliquaryLevelData
levelData
=
reliquaryLevelDataMap
.
get
((
rankLevel
<<
8
)
+
level
);
return
levelData
!=
null
?
levelData
.
getExp
()
:
0
;
}
public
static
ReliquaryLevelData
getRelicLevelData
(
int
rankLevel
,
int
level
)
{
return
reliquaryLevelDataMap
.
get
((
rankLevel
<<
8
)
+
level
);
}
public
static
WeaponPromoteData
getWeaponPromoteData
(
int
promoteId
,
int
promoteLevel
)
{
return
weaponPromoteDataMap
.
get
((
promoteId
<<
8
)
+
promoteLevel
);
}
...
...
@@ -248,7 +250,7 @@ public class GameData {
return
0
;
}
}
public
static
AvatarPromoteData
getAvatarPromoteData
(
int
promoteId
,
int
promoteLevel
)
{
return
avatarPromoteDataMap
.
get
((
promoteId
<<
8
)
+
promoteLevel
);
}
...
...
@@ -262,7 +264,7 @@ public class GameData {
AvatarFetterLevelData
levelData
=
avatarFetterLevelDataMap
.
get
(
level
);
return
levelData
!=
null
?
levelData
.
getExp
()
:
0
;
}
public
static
Int2ObjectMap
<
ProudSkillData
>
getProudSkillDataMap
()
{
return
proudSkillDataMap
;
}
...
...
@@ -309,7 +311,7 @@ public class GameData {
public
static
Int2ObjectMap
<
AvatarCostumeData
>
getAvatarCostumeDataMap
()
{
return
avatarCostumeDataMap
;
}
public
static
Int2ObjectMap
<
AvatarCostumeData
>
getAvatarCostumeDataItemIdMap
()
{
return
avatarCostumeDataItemIdMap
;
}
...
...
@@ -350,7 +352,7 @@ public class GameData {
public
static
Int2ObjectMap
<
WorldAreaData
>
getWorldAreaDataMap
()
{
return
worldAreaDataMap
;
}
public
static
Int2ObjectMap
<
WorldLevelData
>
getWorldLevelDataMap
()
{
return
worldLevelDataMap
;
}
...
...
@@ -358,7 +360,7 @@ public class GameData {
public
static
Int2ObjectMap
<
DungeonData
>
getDungeonDataMap
()
{
return
dungeonDataMap
;
}
public
static
Int2ObjectMap
<
DailyDungeonData
>
getDailyDungeonDataMap
()
{
return
dailyDungeonDataMap
;
}
...
...
@@ -394,11 +396,11 @@ public class GameData {
public
static
Int2ObjectMap
<
TowerFloorData
>
getTowerFloorDataMap
(){
return
towerFloorDataMap
;
}
public
static
Int2ObjectMap
<
TowerLevelData
>
getTowerLevelDataMap
(){
return
towerLevelDataMap
;
}
public
static
Int2ObjectMap
<
TowerScheduleData
>
getTowerScheduleDataMap
(){
return
towerScheduleDataMap
;
}
...
...
@@ -410,19 +412,19 @@ public class GameData {
public
static
Int2ObjectMap
<
ForgeData
>
getForgeDataMap
()
{
return
forgeDataMap
;
}
public
static
Int2ObjectMap
<
HomeWorldLevelData
>
getHomeWorldLevelDataMap
()
{
return
homeWorldLevelDataMap
;
}
public
static
Int2ObjectMap
<
FurnitureMakeConfigData
>
getFurnitureMakeConfigDataMap
()
{
return
furnitureMakeConfigDataMap
;
}
public
static
Int2ObjectMap
<
GatherData
>
getGatherDataMap
()
{
return
gatherDataMap
;
}
public
static
Int2ObjectMap
<
InvestigationMonsterData
>
getInvestigationMonsterDataMap
()
{
return
investigationMonsterDataMap
;
}
...
...
src/main/java/emu/grasscutter/data/binout/ScriptSceneData.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.data.binout
;
import
com.google.gson.annotations.SerializedName
;
import
emu.grasscutter.scripts.data.SceneGroup
;
import
emu.grasscutter.utils.Position
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
ScriptSceneData
{
Map
<
String
,
ScriptObject
>
scriptObjectList
;
@Data
public
static
class
ScriptObject
{
//private SceneGroup groups;
@SerializedName
(
"dummy_points"
)
private
Map
<
String
,
List
<
Float
>>
dummyPoints
;
}
}
src/main/java/emu/grasscutter/data/excels/TriggerExcelConfigData.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.data.excels
;
import
emu.grasscutter.data.GameResource
;
import
emu.grasscutter.data.ResourceType
;
import
lombok.Getter
;
@ResourceType
(
name
=
"TriggerExcelConfigData.json"
)
@Getter
public
class
TriggerExcelConfigData
extends
GameResource
{
@Getter
private
int
id
;
private
int
sceneId
;
private
int
groupId
;
private
String
triggerName
;
}
src/main/java/emu/grasscutter/game/entity/EntityRegion.java
View file @
02a56fce
...
...
@@ -15,6 +15,7 @@ import java.util.concurrent.ConcurrentHashMap;
public
class
EntityRegion
extends
GameEntity
{
private
final
Position
position
;
private
boolean
hasNewEntities
;
private
boolean
entityLeave
;
private
final
Set
<
Integer
>
entities
;
// Ids of entities inside this region
private
final
SceneRegion
metaRegion
;
...
...
@@ -45,10 +46,17 @@ public class EntityRegion extends GameEntity{
hasNewEntities
=
false
;
}
public
void
removeEntity
(
int
entityId
)
{
this
.
getEntities
().
remove
(
entityId
);
this
.
entityLeave
=
true
;
}
public
void
removeEntity
(
GameEntity
entity
)
{
this
.
getEntities
().
remove
(
entity
.
getId
());
this
.
entityLeave
=
true
;
}
public
boolean
entityLeave
()
{
return
this
.
entityLeave
;}
public
void
resetEntityLeave
()
{
this
.
entityLeave
=
false
;}
@Override
public
Int2FloatOpenHashMap
getFightProperties
()
{
return
null
;
...
...
src/main/java/emu/grasscutter/game/quest/QuestSystem.java
View file @
02a56fce
...
...
@@ -65,8 +65,8 @@ public class QuestSystem extends BaseGameSystem {
public
boolean
triggerCondition
(
GameQuest
quest
,
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
QuestBaseHandler
handler
=
condHandlers
.
get
(
condition
.
getType
().
getValue
());
if
(
handler
==
null
||
quest
.
getData
()
==
null
)
{
Grasscutter
.
getLogger
().
debug
(
"Could not trigger condition {} at {}"
,
condition
.
getType
().
getValue
(),
quest
.
getData
());
if
(
handler
==
null
||
quest
.
get
Quest
Data
()
==
null
)
{
Grasscutter
.
getLogger
().
debug
(
"Could not trigger condition {} at {}"
,
condition
.
getType
().
getValue
(),
quest
.
get
Quest
Data
());
return
false
;
}
...
...
@@ -76,8 +76,8 @@ public class QuestSystem extends BaseGameSystem {
public
boolean
triggerContent
(
GameQuest
quest
,
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
QuestBaseHandler
handler
=
contHandlers
.
get
(
condition
.
getType
().
getValue
());
if
(
handler
==
null
||
quest
.
getData
()
==
null
)
{
Grasscutter
.
getLogger
().
debug
(
"Could not trigger content {} at {}"
,
condition
.
getType
().
getValue
(),
quest
.
getData
());
if
(
handler
==
null
||
quest
.
get
Quest
Data
()
==
null
)
{
Grasscutter
.
getLogger
().
debug
(
"Could not trigger content {} at {}"
,
condition
.
getType
().
getValue
(),
quest
.
get
Quest
Data
());
return
false
;
}
...
...
@@ -87,8 +87,8 @@ public class QuestSystem extends BaseGameSystem {
public
boolean
triggerExec
(
GameQuest
quest
,
QuestExecParam
execParam
,
String
...
params
)
{
QuestExecHandler
handler
=
execHandlers
.
get
(
execParam
.
getType
().
getValue
());
if
(
handler
==
null
||
quest
.
getData
()
==
null
)
{
Grasscutter
.
getLogger
().
debug
(
"Could not trigger exec {} at {}"
,
execParam
.
getType
().
getValue
(),
quest
.
getData
());
if
(
handler
==
null
||
quest
.
get
Quest
Data
()
==
null
)
{
Grasscutter
.
getLogger
().
debug
(
"Could not trigger exec {} at {}"
,
execParam
.
getType
().
getValue
(),
quest
.
get
Quest
Data
());
return
false
;
}
...
...
src/main/java/emu/grasscutter/game/quest/RewindData.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest
;
import
lombok.Data
;
import
lombok.Getter
;
import
java.util.List
;
@Data
public
class
RewindData
{
AvatarData
avatar
;
List
<
Npc
>
npcs
;
@Data
public
static
class
AvatarData
{
@Getter
private
String
pos
;
}
@Data
private
static
class
Npc
{
private
String
script
;
private
int
room_id
;
private
int
data_index
;
private
int
id
;
private
String
pos
;
private
int
scene_id
;
private
String
alias
;
}
}
src/main/java/emu/grasscutter/game/quest/conditions/ConditionCompleteTalk.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.GameData
;
import
emu.grasscutter.data.binout.MainQuestData
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameMainQuest
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_COMPLETE_TALK
)
public
class
ConditionCompleteTalk
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
GameMainQuest
checkMainQuest
=
quest
.
getOwner
().
getQuestManager
().
getMainQuestById
(
condition
.
getParam
()[
0
]/
100
);
if
(
checkMainQuest
==
null
||
GameData
.
getMainQuestDataMap
().
get
(
checkMainQuest
.
getParentQuestId
()).
getTalks
()
==
null
)
{
Grasscutter
.
getLogger
().
debug
(
"Warning: mainQuest {} hasn't been started yet, or has no talks"
,
condition
.
getParam
()[
0
]/
100
);
return
false
;
}
MainQuestData
.
TalkData
talkData
=
checkMainQuest
.
getTalks
().
get
(
Integer
.
valueOf
(
params
[
0
]));
return
talkData
!=
null
||
checkMainQuest
.
getChildQuestById
(
params
[
0
])
!=
null
;
}
}
src/main/java/emu/grasscutter/game/quest/conditions/ConditionQuestGlobalVarEqual.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_QUEST_GLOBAL_VAR_EQUAL
)
public
class
ConditionQuestGlobalVarEqual
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
Integer
questGlobalVarValue
=
quest
.
getMainQuest
().
getQuestManager
().
getQuestGlobalVarValue
(
Integer
.
valueOf
(
params
[
0
]));
Grasscutter
.
getLogger
().
debug
(
"questGlobarVar {} : {}"
,
params
[
0
],
questGlobalVarValue
);
return
questGlobalVarValue
.
intValue
()
==
params
[
1
];
}
}
\ No newline at end of file
src/main/java/emu/grasscutter/game/quest/conditions/ConditionQuestGlobalVarGreater.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_QUEST_GLOBAL_VAR_GREATER
)
public
class
ConditionQuestGlobalVarGreater
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
Integer
questGlobalVarValue
=
quest
.
getMainQuest
().
getQuestManager
().
getQuestGlobalVarValue
(
Integer
.
valueOf
(
params
[
0
]));
Grasscutter
.
getLogger
().
debug
(
"questGlobarVar {} : {}"
,
params
[
0
],
questGlobalVarValue
);
return
questGlobalVarValue
.
intValue
()
>
params
[
1
];
}
}
\ No newline at end of file
src/main/java/emu/grasscutter/game/quest/conditions/ConditionQuestGlobalVarLess.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_QUEST_GLOBAL_VAR_LESS
)
public
class
ConditionQuestGlobalVarLess
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
Integer
questGlobalVarValue
=
quest
.
getMainQuest
().
getQuestManager
().
getQuestGlobalVarValue
(
Integer
.
valueOf
(
params
[
0
]));
Grasscutter
.
getLogger
().
debug
(
"questGlobarVar {} : {}"
,
params
[
0
],
questGlobalVarValue
);
return
questGlobalVarValue
.
intValue
()
<
params
[
1
];
}
}
\ No newline at end of file
src/main/java/emu/grasscutter/game/quest/conditions/ConditionQuestVarEqual.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameMainQuest
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_QUEST_VAR_EQUAL
)
public
class
ConditionQuestVarEqual
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
int
questVarValue
=
quest
.
getMainQuest
().
getQuestVars
()[
params
[
0
]];
Grasscutter
.
getLogger
().
debug
(
"questVar {} : {}"
,
params
[
0
],
questVarValue
);
return
questVarValue
==
params
[
1
];
}
}
src/main/java/emu/grasscutter/game/quest/conditions/ConditionQuestVarGreater.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameMainQuest
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_QUEST_VAR_GREATER
)
public
class
ConditionQuestVarGreater
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
int
questVarValue
=
quest
.
getMainQuest
().
getQuestVars
()[
params
[
0
]];
Grasscutter
.
getLogger
().
debug
(
"questVar {} : {}"
,
params
[
0
],
questVarValue
);
return
questVarValue
>
params
[
1
];
}
}
src/main/java/emu/grasscutter/game/quest/conditions/ConditionQuestVarLess.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameMainQuest
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_QUEST_VAR_LESS
)
public
class
ConditionQuestVarLess
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
int
questVarValue
=
quest
.
getMainQuest
().
getQuestVars
()[
params
[
0
]];
Grasscutter
.
getLogger
().
debug
(
"questVar {} : {}"
,
params
[
0
],
questVarValue
);
return
questVarValue
<
params
[
1
];
}
}
src/main/java/emu/grasscutter/game/quest/conditions/ConditionStateNotEqual.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.conditions
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_COND_STATE_NOT_EQUAL
)
public
class
ConditionStateNotEqual
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
GameQuest
checkQuest
=
quest
.
getOwner
().
getQuestManager
().
getQuestById
(
condition
.
getParam
()[
0
]);
if
(
checkQuest
==
null
)
{
/*
Will spam the console
//Grasscutter.getLogger().debug("Warning: quest {} hasn't been started yet!", condition.getParam()[0]);
*/
return
false
;
}
return
checkQuest
.
getState
().
getValue
()
!=
condition
.
getParam
()[
1
];
}
}
src/main/java/emu/grasscutter/game/quest/content/ContentCompleteAnyTalk.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.content
;
import
emu.grasscutter.data.binout.MainQuestData
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameMainQuest
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_CONTENT_COMPLETE_ANY_TALK
)
public
class
ContentCompleteAnyTalk
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
GameMainQuest
checkMainQuest
=
quest
.
getOwner
().
getQuestManager
().
getMainQuestById
(
params
[
0
]/
100
);
if
(
checkMainQuest
==
null
)
{
return
false
;}
MainQuestData
.
TalkData
talkData
=
checkMainQuest
.
getTalks
().
get
(
Integer
.
valueOf
(
paramStr
));
return
talkData
==
null
||
condition
.
getParamStr
().
contains
(
paramStr
)
||
checkMainQuest
.
getChildQuestById
(
params
[
0
])
!=
null
;
}
}
\ No newline at end of file
src/main/java/emu/grasscutter/game/quest/content/ContentLeaveScene.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.content
;
import
emu.grasscutter.data.excels.QuestData.QuestCondition
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_CONTENT_LEAVE_SCENE
)
public
class
ContentLeaveScene
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
return
quest
.
getOwner
().
getScene
().
getPrevScene
()
==
params
[
0
];
}
}
src/main/java/emu/grasscutter/game/quest/content/ContentNotFinishPlot.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.content
;
import
emu.grasscutter.data.binout.MainQuestData
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameMainQuest
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_CONTENT_NOT_FINISH_PLOT
)
public
class
ContentNotFinishPlot
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
GameMainQuest
checkMainQuest
=
quest
.
getOwner
().
getQuestManager
().
getMainQuestById
(
params
[
0
]/
100
);
if
(
checkMainQuest
==
null
)
{
return
false
;}
MainQuestData
.
TalkData
talkData
=
checkMainQuest
.
getTalks
().
get
(
Integer
.
valueOf
(
params
[
0
]));
return
talkData
==
null
;
}
}
src/main/java/emu/grasscutter/game/quest/content/ContentQuestStateNotEqual.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.content
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_CONTENT_QUEST_STATE_NOT_EQUAL
)
public
class
ContentQuestStateNotEqual
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
GameQuest
checkQuest
=
quest
.
getOwner
().
getQuestManager
().
getQuestById
(
params
[
0
]);
if
(
checkQuest
!=
null
)
{
return
checkQuest
.
getState
().
getValue
()
!=
params
[
1
];
}
return
false
;
}
}
\ No newline at end of file
src/main/java/emu/grasscutter/game/quest/content/ContentQuestVarEqual.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.content
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_CONTENT_QUEST_VAR_EQUAL
)
public
class
ContentQuestVarEqual
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
int
questVarValue
=
quest
.
getMainQuest
().
getQuestVars
()[
params
[
0
]];
Grasscutter
.
getLogger
().
debug
(
"questVar {} : {}"
,
params
[
0
],
questVarValue
);
return
questVarValue
==
params
[
1
];
}
}
src/main/java/emu/grasscutter/game/quest/content/ContentQuestVarGreater.java
0 → 100644
View file @
02a56fce
package
emu.grasscutter.game.quest.content
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.data.excels.QuestData
;
import
emu.grasscutter.game.quest.GameQuest
;
import
emu.grasscutter.game.quest.QuestValue
;
import
emu.grasscutter.game.quest.enums.QuestTrigger
;
import
emu.grasscutter.game.quest.handlers.QuestBaseHandler
;
@QuestValue
(
QuestTrigger
.
QUEST_CONTENT_QUEST_VAR_GREATER
)
public
class
ContentQuestVarGreater
extends
QuestBaseHandler
{
@Override
public
boolean
execute
(
GameQuest
quest
,
QuestData
.
QuestCondition
condition
,
String
paramStr
,
int
...
params
)
{
int
questVarValue
=
quest
.
getMainQuest
().
getQuestVars
()[
params
[
0
]];
Grasscutter
.
getLogger
().
debug
(
"questVar {} : {}"
,
params
[
0
],
questVarValue
);
return
questVarValue
>
params
[
1
];
}
}
Prev
1
2
Next
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