Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2.0.0] [Task Editor] Major Task Update(s) #70

Merged
merged 29 commits into from
Sep 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
fb46757
Generate API pipeline
Akkadius Sep 26, 2022
0e84149
Field updating
Akkadius Sep 26, 2022
a0572f7
[API] Run make generate-api-pipeline
Akkadius Sep 26, 2022
33265fb
Task editor fixes / updates
Akkadius Sep 26, 2022
e3c3d2e
Update tasks.ts
Akkadius Sep 26, 2022
21ffc96
Handle multiple rewards
Akkadius Sep 26, 2022
72da7c9
Handle proximities
Akkadius Sep 26, 2022
77ca037
Remove proximities controller and table
Akkadius Sep 27, 2022
f974a2b
Update api.ts
Akkadius Sep 27, 2022
750822e
Update TaskPreview.vue
Akkadius Sep 27, 2022
0384f51
Logger
Akkadius Sep 27, 2022
3e56d04
Fix fields, render reward_method as quest controlled, don't render re…
Akkadius Sep 27, 2022
80efbfc
Darken buttons instead of translucent
Akkadius Sep 27, 2022
897651b
NPC match list work
Akkadius Sep 28, 2022
a775349
Fully implement npc_match_list
Akkadius Sep 28, 2022
0ad7b07
Cleanup
Akkadius Sep 28, 2022
659bb30
Item match list selection
Akkadius Sep 28, 2022
c587f13
Implement item adding to match list
Akkadius Sep 28, 2022
3fac020
Item match list adding / deletion
Akkadius Sep 28, 2022
119c022
Update TaskNpcMatchListPreviewer.vue
Akkadius Sep 28, 2022
a482709
Reward id list
Akkadius Sep 28, 2022
fb91a28
Global NPC match listing
Akkadius Sep 28, 2022
db32ddb
Show when no items / npcs were found
Akkadius Sep 28, 2022
6ad54ec
Fix gorm logging
Akkadius Sep 28, 2022
ba7f158
Fix item caching issue with item preview
Akkadius Sep 28, 2022
da27631
Remove FullSaveAssociations from crud gen
Akkadius Sep 28, 2022
f9998d3
Save tasks in more places when fields have been modified
Akkadius Sep 28, 2022
1cd5025
Remove dependency no longer needed in code gen
Akkadius Sep 28, 2022
8e8a469
[2.0.0] [Task Editor] Major Task Update(s)
Akkadius Sep 28, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .air.prod.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ exclude_dir = [
"assets",
"tmp",
"vendor",
"_data",
"public",
"data",
"containers"
Expand Down
1 change: 1 addition & 0 deletions .air.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ exclude_dir = [
"quests",
"vendor",
"public",
"_data",
"data",
"containers"
]
Expand Down
4 changes: 2 additions & 2 deletions .air.windows.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ full_bin = "spire http:serve --port=3001 null"
# Watch these filename extensions.
include_ext = ["go", "tpl", "tmpl", "html"]
# Ignore these filename extensions or directories.
exclude_dir = ["assets", "tmp", "vendor", "frontend", "data", ".idea", "public"]
exclude_dir = ["assets", "tmp", "vendor", "frontend", "data", "_data", ".idea", "public"]
# Watch these directories if you specified.
include_dir = []
# Exclude files.
Expand Down Expand Up @@ -50,4 +50,4 @@ runner = "green"

[misc]
# Delete tmp directory on exit
clean_on_exit = true
clean_on_exit = true
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ vendor/
.idea
spire
data/
_data/
bin/
tmp/
quests/
Expand Down
83 changes: 83 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,86 @@
## [2.0.0] [Task Editor] Major Task Update(s)

![image](https://user-images.githubusercontent.com/3319450/192701596-13a3fbbe-7c46-47ca-8f54-16de57c3c8d9.png)

### Changes

* Added sectional descriptions and info indicators
* Description building should be more clear and concise
* Explore details are now inline with the activity
* Fields `item_id` and `item_goal_id` combine into `item_id_list` which can contain a single item or list of items that are pipe delimited `|` Example (37025|37029|37032)
* Fields `npc_id` and `npc_goal_id` combine into `npc_match_list` which can contain a single NPC or a list of NPC's that are pipe delimited `|` Example (4007|4009|4013|4024|4036|4043|4078|4080) and can also contain NPC names as partials (orc|gnoll|bear)
* Instead of `goalmethod` and `rewardmethod` displayed as dropdowns. It simply is a checkbox that displays **Quest Controlled**
* Performance and caching updates
* Resolved issues with tasks saving inconsistently
* Reward window should now display multiple items
* Task rewards now support multiple items inline
* Tasks now save automatically when a field is modified and activity actions are invoked
* Tasks now set proper defaults for `req_activity_id` (-1)

See Server PR for more major system change details https://github.com/EQEmu/Server/pull/2449

### NPC Match List Support

Match lists are **| pipe separated lists** containing NPC ID(s) or partial (wildcard) NPC names. This is very useful especially when trying to filter activity updates by name.

NPC match lists are available with the following activity types

* Deliver
* Kill
* Speak with
* Give

Fields `npc_id` and `npc_goal_id` have combined

![image](https://user-images.githubusercontent.com/3319450/192702240-025ba8ac-c09f-458e-ae29-73d8d3379e03.png)

### Item Match List Support

To bring similar flexibility to that there of **NPC Match List(s)**, multiple item's can be used for the following activity types.

* Deliver
* Loot
* Tradeskill
* Fish
* Forage

![image](https://user-images.githubusercontent.com/3319450/192705534-d9f02103-1b2e-4f53-8eb9-c2cc46ce7e00.png)


### Exploration Box Changes

Exploration used to be managed by the **proximities** table. Part of the recent waves of simplification this is now managed on the **task_activities** table to simplify. As a result explore boxes are now visible within the activity pane instead of breaking out as their own sub-editor when editing an explore activity type.

![image](https://user-images.githubusercontent.com/3319450/192704930-aa0efda8-b196-43a5-8311-755481327763.png)

### Multiple Item Reward(s)

Not only are multiple rewards now possible through the **Reward Item ID(s)** field (**separated by |**) you can also see them render in the **Task Preview Window**

![image](https://user-images.githubusercontent.com/3319450/192703822-f234928b-4e89-4f65-b7de-9123cd90ff48.png)

### Field Usage Matrix

To be updated in official documentation

| activity\_type | activity\_type\_description | item\_id\_list | npc\_match\_list | dz\_switch\_id | min\_x | max\_x | min\_y | max\_y | min\_z | max\_z | skill\_list | spell\_list | item\_list | target\_name | Description Format |
| -------------- | --------------------------- | -------------- | ---------------- | --------------------------------- | ------ | ------ | ------ | ------ | ------ | ------ | ------------- | ------------- | ---------------------------------------- | -------------------------------------- | -------------------------------------------------- |
| 1 | Deliver | x | x | \- | o | o | o | o | o | o | \- | \- | Name of Item(s) | Name of NPC | Deliver (goalcount) (item\_list) to (target\_name) |
| 2 | Kill | \- | x | \- | o | o | o | o | o | o | \- | \- | \- | Name of NPC | Kill (goalcount) (target\_name) |
| 3 | Loot | x | o | \- | o | o | o | o | o | o | \- | \- | Name of Item(s) | Name of NPC | Loot (goalcount) (item\_list) from (target\_name) |
| 4 | Speak With | \- | x | \- | o | o | o | o | o | o | \- | \- | \- | Name of NPC | Speak with (target\_name) |
| 5 | Explore | \- | \- | \- | x | x | x | x | x | x | \- | \- | \- | Name of Explore Area | Explore (target\_name) |
| 6 | Tradeskill | x | \- | \- | o | o | o | o | o | o | \- | \- | Name of Item(s) | \- | Create (goalcount) (item\_list) using tradeskills |
| 7 | Fish | x | \- | \- | o | o | o | o | o | o | \- | \- | Name of Item(s) | \- | Fish for (goalcount) (item\_list) |
| 8 | Forage | x | \- | \- | o | o | o | o | o | o | \- | \- | Name of Item(s)<br>Forage x (item\_list) | \- | Forage (goalcount) (item\_list) |
| 9 | Use (Cast On) | \- | \- | \- | o | o | o | o | o | o | \- | Spell name(s) | \- | Name (Anything) | Use (spell\_list) on (target\_name) |
| 10 | Use2 (Skill On) | \- | \- | \- | o | o | o | o | o | o | Skill name(s) | \- | \- | Name (Anything) | Use (skill\_list) on (target\_name) |
| 11 | Touch | \- | \- | x<br>(doors table dz\_switch\_id) | o | o | o | o | o | o | \- | \- | \- | Name of Touch Target<br>(Touch target) | Touch (target\_name) |
| 100 | Give | \- | x | \- | o | o | o | o | o | o | \- | \- | \- | Name of NPC | Give (goal\_count) to (target\_name) |
| 255 | Quest Script | \- | \- | \- | o | o | o | o | o | o | \- | \- | \- | \- | \- |



## [1.13.10]

* Addresses an issue where connections endpoint was hit when booting the app. When Spire does not have a Spire database, it panics the backend. https://github.com/Akkadius/spire/issues/63
Expand Down
3 changes: 0 additions & 3 deletions boot/inject_http.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,6 @@ func NewRouter(
[]echo.MiddlewareFunc{
logMiddleware.Handle(),
//middleware.Logger(), // json logger
middleware.LoggerWithConfig(middleware.LoggerConfig{
Format: "method=${method}, uri=${uri}, status=${status}, time=${latency_human}\n",
}),
middleware.Recover(),
middleware.CORSWithConfig(
middleware.CORSConfig{
Expand Down
6 changes: 0 additions & 6 deletions boot/inject_http_crud_controllers.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,6 @@ var httpCrudControllerSet = wire.NewSet(
crudcontrollers.NewFriendController,
crudcontrollers.NewGlobalLootController,
crudcontrollers.NewGmIpController,
crudcontrollers.NewGoallistController,
crudcontrollers.NewGraveyardController,
crudcontrollers.NewGridController,
crudcontrollers.NewGridEntryController,
Expand Down Expand Up @@ -152,7 +151,6 @@ var httpCrudControllerSet = wire.NewSet(
crudcontrollers.NewPetsEquipmentsetController,
crudcontrollers.NewPetsEquipmentsetEntryController,
crudcontrollers.NewPlayerTitlesetController,
crudcontrollers.NewProximityController,
crudcontrollers.NewQuestGlobalController,
crudcontrollers.NewRaidDetailController,
crudcontrollers.NewRaidMemberController,
Expand Down Expand Up @@ -282,7 +280,6 @@ func provideCrudControllers(
friendController *crudcontrollers.FriendController,
globalLootController *crudcontrollers.GlobalLootController,
gmIpController *crudcontrollers.GmIpController,
goallistController *crudcontrollers.GoallistController,
graveyardController *crudcontrollers.GraveyardController,
gridController *crudcontrollers.GridController,
gridEntryController *crudcontrollers.GridEntryController,
Expand Down Expand Up @@ -338,7 +335,6 @@ func provideCrudControllers(
petsEquipmentsetController *crudcontrollers.PetsEquipmentsetController,
petsEquipmentsetEntryController *crudcontrollers.PetsEquipmentsetEntryController,
playerTitlesetController *crudcontrollers.PlayerTitlesetController,
proximityController *crudcontrollers.ProximityController,
questGlobalController *crudcontrollers.QuestGlobalController,
raidDetailController *crudcontrollers.RaidDetailController,
raidMemberController *crudcontrollers.RaidMemberController,
Expand Down Expand Up @@ -467,7 +463,6 @@ func provideCrudControllers(
friendController,
globalLootController,
gmIpController,
goallistController,
graveyardController,
gridController,
gridEntryController,
Expand Down Expand Up @@ -523,7 +518,6 @@ func provideCrudControllers(
petsEquipmentsetController,
petsEquipmentsetEntryController,
playerTitlesetController,
proximityController,
questGlobalController,
raidDetailController,
raidMemberController,
Expand Down
Loading