Skip to content

Commit

Permalink
feat(SAI): comment generator (#345)
Browse files Browse the repository at this point in the history
  • Loading branch information
FrancescoBorzi committed Feb 3, 2020
1 parent 07ec6b4 commit 3131d67
Show file tree
Hide file tree
Showing 27 changed files with 3,024 additions and 113 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,15 @@ describe('SelectConditions integration tests', () => {

page.clickElement(page.searchBtn);

const row0 = page.getDatatableRow(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRow(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRow(page.DT_SELECTOR, 2);
const row0 = page.getDatatableRowExternal(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRowExternal(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRowExternal(page.DT_SELECTOR, 2);

expect(row0.innerText).toContain(results[0].SourceGroup.toString());
expect(row1.innerText).toContain(results[1].SourceGroup.toString());
expect(row2.innerText).toContain(results[2].SourceGroup.toString());

page.clickElement(page.getDatatableCell(page.DT_SELECTOR, 1, 1));
page.clickElement(page.getDatatableCellExternal(page.DT_SELECTOR, 1, 1));

expect(navigateSpy).toHaveBeenCalledTimes(1);
expect(navigateSpy).toHaveBeenCalledWith(['conditions/conditions']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@ import { ToastrService } from 'ngx-toastr';
import { SaiEditorService } from '@keira-shared/modules/sai-editor/sai-editor.service';
import { QueryService } from '@keira-shared/services/query.service';
import { SaiCreatureHandlerService } from '../sai-creature-handler.service';
import { SaiCommentGeneratorService } from '@keira-shared/modules/sai-editor/sai-comment-generator.service';

@Injectable()
export class SaiCreatureEditorService extends SaiEditorService {
constructor(
protected handlerService: SaiCreatureHandlerService,
protected queryService: QueryService,
protected toastrService: ToastrService,
protected saiCommentGeneratorService: SaiCommentGeneratorService,
) {
super(
handlerService,
queryService,
toastrService,
saiCommentGeneratorService,
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -164,15 +164,15 @@ describe('SelectCreature integration tests', () => {

page.clickElement(page.searchBtn);

const row0 = page.getDatatableRow(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRow(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRow(page.DT_SELECTOR, 2);
const row0 = page.getDatatableRowExternal(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRowExternal(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRowExternal(page.DT_SELECTOR, 2);

expect(row0.innerText).toContain(results[0].name);
expect(row1.innerText).toContain(results[1].name);
expect(row2.innerText).toContain(results[2].name);

page.clickElement(page.getDatatableCell(page.DT_SELECTOR, 1, 1));
page.clickElement(page.getDatatableCellExternal(page.DT_SELECTOR, 1, 1));

expect(navigateSpy).toHaveBeenCalledTimes(1);
expect(navigateSpy).toHaveBeenCalledWith(['creature/creature-template']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@ import { ToastrService } from 'ngx-toastr';
import { SaiEditorService } from '@keira-shared/modules/sai-editor/sai-editor.service';
import { QueryService } from '@keira-shared/services/query.service';
import { SaiGameobjectHandlerService } from '../sai-gameobject-handler.service';
import { SaiCommentGeneratorService } from '@keira-shared/modules/sai-editor/sai-comment-generator.service';

@Injectable()
export class SaiGameobjectEditorService extends SaiEditorService {
constructor(
protected handlerService: SaiGameobjectHandlerService,
protected queryService: QueryService,
protected toastrService: ToastrService,
protected saiCommentGeneratorService: SaiCommentGeneratorService,
) {
super(
handlerService,
queryService,
toastrService,
saiCommentGeneratorService,
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -159,15 +159,15 @@ describe('SelectGameobject integration tests', () => {

page.clickElement(page.searchBtn);

const row0 = page.getDatatableRow(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRow(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRow(page.DT_SELECTOR, 2);
const row0 = page.getDatatableRowExternal(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRowExternal(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRowExternal(page.DT_SELECTOR, 2);

expect(row0.innerText).toContain(results[0].name);
expect(row1.innerText).toContain(results[1].name);
expect(row2.innerText).toContain(results[2].name);

page.clickElement(page.getDatatableCell(page.DT_SELECTOR, 1, 1));
page.clickElement(page.getDatatableCellExternal(page.DT_SELECTOR, 1, 1));

expect(navigateSpy).toHaveBeenCalledTimes(1);
expect(navigateSpy).toHaveBeenCalledWith(['gameobject/gameobject-template']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,15 +154,15 @@ describe('SelectGossip integration tests', () => {

page.clickElement(page.searchBtn);

const row0 = page.getDatatableRow(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRow(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRow(page.DT_SELECTOR, 2);
const row0 = page.getDatatableRowExternal(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRowExternal(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRowExternal(page.DT_SELECTOR, 2);

expect(row0.innerText).toContain(`${results[0].TextID}`);
expect(row1.innerText).toContain(`${results[1].TextID}`);
expect(row2.innerText).toContain(`${results[2].TextID}`);

page.clickElement(page.getDatatableCell(page.DT_SELECTOR, 1, 1));
page.clickElement(page.getDatatableCellExternal(page.DT_SELECTOR, 1, 1));

expect(navigateSpy).toHaveBeenCalledTimes(1);
expect(navigateSpy).toHaveBeenCalledWith(['gossip/gossip-menu']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,15 @@ describe('SelectItem integration tests', () => {

page.clickElement(page.searchBtn);

const row0 = page.getDatatableRow(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRow(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRow(page.DT_SELECTOR, 2);
const row0 = page.getDatatableRowExternal(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRowExternal(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRowExternal(page.DT_SELECTOR, 2);

expect(row0.innerText).toContain(results[0].name);
expect(row1.innerText).toContain(results[1].name);
expect(row2.innerText).toContain(results[2].name);

page.clickElement(page.getDatatableCell(page.DT_SELECTOR, 1, 1));
page.clickElement(page.getDatatableCellExternal(page.DT_SELECTOR, 1, 1));

expect(navigateSpy).toHaveBeenCalledTimes(1);
expect(navigateSpy).toHaveBeenCalledWith(['item/item-template']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,15 +153,15 @@ describe('SelectQuest integration tests', () => {

page.clickElement(page.searchBtn);

const row0 = page.getDatatableRow(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRow(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRow(page.DT_SELECTOR, 2);
const row0 = page.getDatatableRowExternal(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRowExternal(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRowExternal(page.DT_SELECTOR, 2);

expect(row0.innerText).toContain(results[0].LogTitle);
expect(row1.innerText).toContain(results[1].LogTitle);
expect(row2.innerText).toContain(results[2].LogTitle);

page.clickElement(page.getDatatableCell(page.DT_SELECTOR, 1, 1));
page.clickElement(page.getDatatableCellExternal(page.DT_SELECTOR, 1, 1));

expect(navigateSpy).toHaveBeenCalledTimes(1);
expect(navigateSpy).toHaveBeenCalledWith(['quest/quest-template']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,15 @@ describe('SaiSearchExisting integration tests', () => {

page.clickElement(page.searchBtn);

const row0 = page.getDatatableRow(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRow(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRow(page.DT_SELECTOR, 2);
const row0 = page.getDatatableRowExternal(page.DT_SELECTOR, 0);
const row1 = page.getDatatableRowExternal(page.DT_SELECTOR, 1);
const row2 = page.getDatatableRowExternal(page.DT_SELECTOR, 2);

expect(row0.innerText).toContain(results[0].entryorguid.toString());
expect(row1.innerText).toContain(results[1].entryorguid.toString());
expect(row2.innerText).toContain(results[2].entryorguid.toString());

page.clickElement(page.getDatatableCell(page.DT_SELECTOR, 1, 1));
page.clickElement(page.getDatatableCellExternal(page.DT_SELECTOR, 1, 1));

expect(navigateSpy).toHaveBeenCalledTimes(1);
expect(navigateSpy).toHaveBeenCalledWith(['smart-ai/editors']);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,4 +203,8 @@ export abstract class MultiRowEditorService<T extends TableRow> extends EditorSe

return true;
}

refreshDatatable() {
this._newRows = [ ...this._newRows ];
}
}
8 changes: 4 additions & 4 deletions src/app/shared/modules/sai-editor/constants/sai-comments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,10 @@ SAI_ACTION_COMMENTS[SAI_ACTIONS.FLEE_FOR_ASSIST] = `Flee For Assist`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.CALL_GROUPEVENTHAPPENS] = `Quest Credit '_questNameActionParamOne_'`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.REMOVEAURASFROMSPELL] = `Remove Aura '_spellNameActionParamOne_'`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.FOLLOW] = `_startOrStopBasedOnTargetType_ Follow _getTargetType_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.RANDOM_PHASE] = `Set Random Phase(_actionRandomParameters_)`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.RANDOM_PHASE] = `Set Random Phase (_actionRandomParameters_)`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.RANDOM_PHASE_RANGE] = `Set Phase Random Between _actionParamOne_-_actionParamTwo_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.RESET_GOBJECT] = `Reset Gameobject`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.KILL_UNIT] = `Quest Credit '_questNameKillCredit_'`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.CALL_KILLEDMONSTER] = `Quest Credit '_questNameKillCredit_'`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SET_INST_DATA] = `Set Instance Data _actionParamOne_ to _actionParamTwo_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SET_INST_DATA64] = `Set Instance Data _actionParamOne_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.UPDATE_TEMPLATE] = `Update Template To '_creatureNameActionParamOne_'`;
Expand All @@ -116,7 +116,7 @@ SAI_ACTION_COMMENTS[SAI_ACTIONS.MOVE_FORWARD] = `Move Forward _actionParamOne_ Y
SAI_ACTION_COMMENTS[SAI_ACTIONS.SET_VISIBILITY] = `Set Visibility _onOffActionParamOne_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SET_ACTIVE] = `Set Active _onOffActionParamOne_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.ATTACK_START] = `Start Attacking`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SUMMON_GO] = `Summon Gameobject '_gameobjectNameActionParamOne_'`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SUMMON_GO] = `Summon Gameobject _gameobjectNameActionParamOne_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.KILL_UNIT] = `Kill Target`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.ACTIVATE_TAXI] = `Activate Taxi Path _actionParamOne_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.WP_START] = `Start Waypoint`;
Expand Down Expand Up @@ -156,7 +156,7 @@ SAI_ACTION_COMMENTS[SAI_ACTIONS.CALL_RANDOM_TIMED_ACTIONLIST] = `Run Random Scri
SAI_ACTION_COMMENTS[SAI_ACTIONS.CALL_RANDOM_RANGE_TIMED_ACTIONLIST] = `Run Random Script`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.RANDOM_MOVE] = `Start Random Movement`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SET_UNIT_FIELD_BYTES_1] = `Set Flag _getBytes1Flags_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.REMOVE_UNIT_FIELD_BYTES_1] = `Remove Flag _getBytes1Flags_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.REMOVE_UNIT_FIELD_BYTES_1] = `Remove Flag_getBytes1Flags_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.INTERRUPT_SPELL] = `Interrupt Spell '_spellNameActionParamTwo_'`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SEND_GO_CUSTOM_ANIM] = `Send Custom Animation _actionParamOne_`;
SAI_ACTION_COMMENTS[SAI_ACTIONS.SET_DYNAMIC_FLAG] = `Set Dynamic Flag_getDynamicFlags_`;
Expand Down
158 changes: 158 additions & 0 deletions src/app/shared/modules/sai-editor/constants/sai-constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
export const UNIT_FLAGS = {
NONE : 0x00000000,
SERVER_CONTROLLED : 0x00000001,
NON_ATTACKABLE : 0x00000002,
DISABLE_MOVE : 0x00000004,
PVP_ATTACKABLE : 0x00000008,
RENAME : 0x00000010,
PREPARATION : 0x00000020,
UNK_6 : 0x00000040,
NOT_ATTACKABLE_1 : 0x00000080,
IMMUNE_TO_PC : 0x00000100,
IMMUNE_TO_NPC : 0x00000200,
LOOTING : 0x00000400,
PET_IN_COMBAT : 0x00000800,
PVP : 0x00001000,
SILENCED : 0x00002000,
UNK_14 : 0x00004000,
UNK_15 : 0x00008000,
UNK_16 : 0x00010000,
PACIFIED : 0x00020000,
STUNNED : 0x00040000,
IN_COMBAT : 0x00080000,
TAXI_FLIGHT : 0x00100000,
DISARMED : 0x00200000,
CONFUSED : 0x00400000,
FLEEING : 0x00800000,
PLAYER_CONTROLLED : 0x01000000,
NOT_SELECTABLE : 0x02000000,
SKINNABLE : 0x04000000,
MOUNT : 0x08000000,
UNK_28 : 0x10000000,
UNK_29 : 0x20000000,
SHEATHE : 0x40000000,
};

export const unitFieldBytes1Type = {
STAND_STAND_STATE_TYPE : 0,
PET_TALENTS_TYPE : 1,
STAND_FLAGS_TYPE : 2,
BYTES1_FLAGS_TYPE : 3,
};

export const NPC_FLAGS = {
NONE : 0x00000000,
GOSSIP : 0x00000001,
QUESTGIVER : 0x00000002,
UNK1 : 0x00000004,
UNK2 : 0x00000008,
TRAINER : 0x00000010,
TRAINER_CLASS : 0x00000020,
TRAINER_PROFESSION : 0x00000040,
VENDOR : 0x00000080,
VENDOR_AMMO : 0x00000100,
VENDOR_FOOD : 0x00000200,
VENDOR_POISON : 0x00000400,
VENDOR_REAGENT : 0x00000800,
REPAIR : 0x00001000,
FLIGHTMASTER : 0x00002000,
SPIRITHEALER : 0x00004000,
SPIRITGUIDE : 0x00008000,
INNKEEPER : 0x00010000,
BANKER : 0x00020000,
PETITIONER : 0x00040000,
TABARDDESIGNER : 0x00080000,
BATTLEMASTER : 0x00100000,
AUCTIONEER : 0x00200000,
STABLEMASTER : 0x00400000,
GUILD_BANKER : 0x00800000,
SPELLCLICK : 0x01000000,
PLAYER_VEHICLE : 0x02000000,
};

export const templates = {
BASIC : 0,
CASTER : 1,
TURRET : 2,
PASSIVE : 3,
CAGED_GO_PART : 4,
CAGED_NPC_PART : 5,
};

export const GO_FLAGS = {
NONE : 0x00000000,
IN_USE : 0x00000001,
LOCKED : 0x00000002,
INTERACT_COND : 0x00000004,
TRANSPORT : 0x00000008,
NOT_SELECTABLE : 0x00000010,
NODESPAWN : 0x00000020,
TRIGGERED : 0x00000040,
DAMAGED : 0x00000200,
DESTROYED : 0x00000400,
};

export const DYNAMIC_FLAGS = {
NONE : 0x0000,
LOOTABLE : 0x0001,
TRACK_UNIT : 0x0002,
TAPPED : 0x0004,
TAPPED_BY_PLAYER : 0x0008,
SPECIALINFO : 0x0010,
DEAD : 0x0020,
REFER_A_FRIEND : 0x0040,
TAPPED_BY_ALL_THREAT_LIST : 0x0080
};

export const unitStandStateType = {
STAND : 0,
SIT : 1,
SIT_CHAIR : 2,
SLEEP : 3,
SIT_LOW_CHAIR : 4,
SIT_MEDIUM_CHAIR : 5,
SIT_HIGH_CHAIR : 6,
DEAD : 7,
KNEEL : 8,
SUBMERGED : 9
};

export const unitStandFlags = {
NONE : 0x00,
UNK1 : 0x01,
CREEP : 0x02,
UNTRACKABLE : 0x04,
UNK4 : 0x08,
UNK5 : 0x10,
ALL : 0xFF
};

export const unitBytes1Flags = {
ALWAYS_STAND : 0x01,
HOVER : 0x02,
UNK_3 : 0x04,
ALL : 0xFF
};

export const EVENT_FLAGS = {
NONE : 0x00,
NOT_REPEATABLE : 0x01,
NORMAL_DUNGEON : 0x02,
HEROIC_DUNGEON : 0x04,
NORMAL_RAID : 0x08,
HEROIC_RAID : 0x10,
DEBUG_ONLY : 0x80
};

export const phaseMask = {
ALWAYS : 0x000,
1 : 0x001,
2 : 0x002,
3 : 0x004,
4 : 0x008,
5 : 0x010,
6 : 0x020,
7 : 0x040,
8 : 0x080,
9 : 0x100
};
Loading

0 comments on commit 3131d67

Please sign in to comment.