Skip to content

Commit

Permalink
Merge pull request #308 from Harry-Hopkinson/pair-programming
Browse files Browse the repository at this point in the history
  • Loading branch information
tonybaloney committed Nov 21, 2022
2 parents 2b49234 + 8293763 commit 4ac2a21
Show file tree
Hide file tree
Showing 21 changed files with 293 additions and 140 deletions.
2 changes: 0 additions & 2 deletions .prettierrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@ module.exports = {
printWidth: 80,
semi: true,
};

// prettier --single-quote true --trailing-comma all --tab-width 4 --print-width 80 --semi true --check "src/**/*.ts"
4 changes: 4 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ignore:
# ignore because of errors
# due to edge cases
- src/common/names.ts
67 changes: 66 additions & 1 deletion media/main-bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ class BasePetType {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [],
};
static possibleColors;
currentState;
currentStateEnum;
holdState;
Expand Down Expand Up @@ -424,6 +425,9 @@ function addPetToPanel(petType, basePetUri, petColor, petSize, left, bottom, flo
const root = basePetUri + '/' + petType + '/' + petColor;
console.log('Creating new pet : ', petType, root, petColor, petSize, name);
try {
if (!(0, pets_1.availableColors)(petType).includes(petColor)) {
throw new pets_1.InvalidPetException('Invalid color for pet type');
}
var newPet = (0, pets_1.createPet)(petType, petSpriteElement, collisionElement, speechBubbleElement, petSize, left, bottom, root, floor, name);
petCounter++;
startAnimations(collisionElement, newPet, stateApi);
Expand Down Expand Up @@ -779,7 +783,7 @@ window.addEventListener('resize', function () {


Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.createPet = exports.InvalidPetException = exports.PetCollection = exports.PetElement = void 0;
exports.normalizeColor = exports.availableColors = exports.createPet = exports.InvalidPetException = exports.PetCollection = exports.PetElement = void 0;
const cat_1 = __webpack_require__(/*! ./pets/cat */ "./src/panel/pets/cat.ts");
const clippy_1 = __webpack_require__(/*! ./pets/clippy */ "./src/panel/pets/clippy.ts");
const cockatiel_1 = __webpack_require__(/*! ./pets/cockatiel */ "./src/panel/pets/cockatiel.ts");
Expand Down Expand Up @@ -919,6 +923,51 @@ function createPet(petType, el, collision, speech, size, left, bottom, petRoot,
}
}
exports.createPet = createPet;
function availableColors(petType) {
switch (petType) {
case "cat" /* PetType.cat */:
return cat_1.Cat.possibleColors;
case "dog" /* PetType.dog */:
return dog_1.Dog.possibleColors;
case "crab" /* PetType.crab */:
return crab_1.Crab.possibleColors;
case "clippy" /* PetType.clippy */:
return clippy_1.Clippy.possibleColors;
case "mod" /* PetType.mod */:
return mod_1.Mod.possibleColors;
case "totoro" /* PetType.totoro */:
return totoro_1.Totoro.possibleColors;
case "snake" /* PetType.snake */:
return snake_1.Snake.possibleColors;
case "rubber-duck" /* PetType.rubberduck */:
return rubberduck_1.RubberDuck.possibleColors;
case "zappy" /* PetType.zappy */:
return zappy_1.Zappy.possibleColors;
case "rocky" /* PetType.rocky */:
return rocky_1.Rocky.possibleColors;
case "cockatiel" /* PetType.cockatiel */:
return cockatiel_1.Cockatiel.possibleColors;
default:
throw new InvalidPetException("Pet type doesn't exist");
}
}
exports.availableColors = availableColors;
/**
* Some pets can only have certain colors, this makes sure they haven't been misconfigured.
* @param petColor
* @param petType
* @returns normalized color
*/
function normalizeColor(petColor, petType) {
const colors = availableColors(petType);
if (colors.includes(petColor)) {
return petColor;
}
else {
return colors[0];
}
}
exports.normalizeColor = normalizeColor;


/***/ }),
Expand All @@ -935,6 +984,7 @@ exports.CAT_NAMES = exports.Cat = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Cat extends basepettype_1.BasePetType {
label = 'cat';
static possibleColors = ["black" /* PetColor.black */, "brown" /* PetColor.brown */, "white" /* PetColor.white */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1148,6 +1198,12 @@ exports.CLIPPY_NAMES = exports.Clippy = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Clippy extends basepettype_1.BasePetType {
label = 'clippy';
static possibleColors = [
"black" /* PetColor.black */,
"brown" /* PetColor.brown */,
"green" /* PetColor.green */,
"yellow" /* PetColor.yellow */,
];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1222,6 +1278,7 @@ exports.COCKATIEL_NAMES = exports.Cockatiel = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Cockatiel extends basepettype_1.BasePetType {
label = 'cockatiel';
static possibleColors = ["gray" /* PetColor.gray */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1320,6 +1377,7 @@ exports.CRAB_NAMES = exports.Crab = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Crab extends basepettype_1.BasePetType {
label = 'crab';
static possibleColors = ["red" /* PetColor.red */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1434,6 +1492,7 @@ exports.DOG_NAMES = exports.Dog = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Dog extends basepettype_1.BasePetType {
label = 'dog';
static possibleColors = ["black" /* PetColor.black */, "brown" /* PetColor.brown */, "white" /* PetColor.white */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1653,6 +1712,7 @@ exports.MOD_NAMES = exports.Mod = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Mod extends basepettype_1.BasePetType {
label = 'mod';
static possibleColors = ["purple" /* PetColor.purple */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1723,6 +1783,7 @@ exports.ROCKY_NAMES = exports.Rocky = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Rocky extends basepettype_1.BasePetType {
label = 'rocky';
static possibleColors = ["gray" /* PetColor.gray */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1792,6 +1853,7 @@ exports.DUCK_NAMES = exports.RubberDuck = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class RubberDuck extends basepettype_1.BasePetType {
label = 'rubber-duck';
static possibleColors = ["yellow" /* PetColor.yellow */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -1914,6 +1976,7 @@ exports.SNAKE_NAMES = exports.Snake = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Snake extends basepettype_1.BasePetType {
label = 'snake';
static possibleColors = ["green" /* PetColor.green */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -2038,6 +2101,7 @@ exports.TOTORO_NAMES = exports.Totoro = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Totoro extends basepettype_1.BasePetType {
label = 'totoro';
static possibleColors = ["gray" /* PetColor.gray */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down Expand Up @@ -2128,6 +2192,7 @@ exports.ZAPPY_NAMES = exports.Zappy = void 0;
const basepettype_1 = __webpack_require__(/*! ../basepettype */ "./src/panel/basepettype.ts");
class Zappy extends basepettype_1.BasePetType {
label = 'zappy';
static possibleColors = ["yellow" /* PetColor.yellow */];
sequence = {
startingState: "sit-idle" /* States.sitIdle */,
sequenceStates: [
Expand Down
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 13 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
"onCommand:vscode-pets.delete-pet",
"onCommand:vscode-pets.remove-all-pets",
"onCommand:vscode-pets.roll-call",
"onCommand:vscode-pets.export-pet-list",
"onCommand:vscode-pets.import-pet-list",
"onWebviewPanel:petCoding",
"onView:explorer",
"onView:petsView",
Expand Down Expand Up @@ -98,6 +100,16 @@
"light": "media/icon/light-circle-outline.svg"
}
},
{
"command": "vscode-pets.export-pet-list",
"title": "Export pet list",
"category": "Pet Coding"
},
{
"command": "vscode-pets.import-pet-list",
"title": "Import pet list",
"category": "Pet Coding"
},
{
"command": "vscode-pets.spawn-pet",
"title": "Spawn additional pet",
Expand Down Expand Up @@ -250,7 +262,7 @@
"typescript": "^4.7.4",
"typescript-eslint": "^0.0.1-alpha.0",
"vscode-test": "^1.4.0",
"webpack": "^5.73.0",
"webpack": "5.74.0",
"webpack-cli": "^4.10.0"
},
"dependencies": {
Expand Down
Loading

0 comments on commit 4ac2a21

Please sign in to comment.