// hop.js
(function () {
/* global adventurejs A */
/**
* @augments {adventurejs.Verb}
* @class hop
* @ajsnode game.dictionary.verbs.hop
* @ajsextendverb go
* @ajsconstruct MyGame.createVerb({ "name": "hop", [...] });
* @ajsconstructedby adventurejs.Dictionary#createVerb
* @hideconstructor
* @ajsinstanceof Verb
* @ajsnavheading LocomotionVerbs
* @summary Verb meaning hop, as in "hop over lake"; or, travel in specified direction.
* @tutorial Verbs_Subscriptions
* @tutorial AdvancedVerbs_VerbAnatomy
* @tutorial AdvancedVerbs_VerbProcess
* @tutorial AdvancedVerbs_ModifyVerbs
* @tutorial AdvancedVerbs_ModifyVerbs
* @classdesc
* <pre class="display border outline">
* <span class="ajs-player-input">> hop through mountain</span>
* You fire up your primitive oscillation overthruster, slip off your shoes and set your feet to the pedals, try to align the three beams... and fail completely, scraping against the mountain and spilling a shower of sparks and spaceship parts.
* </pre>
* Hop extends core verb <a href="/doc/go.html">go</a>.
* It checks whether "hop" is contextually available
* before forwarding to "go" for further handling.
* @ajsverbreactions doRemoveThisFromThat, doRemoveThatFromThis, doMoveThisToThat, doMoveThatToThis
* @ajsverbphases doBeforeTry, doAfterTry, doBeforeSuccess, doAfterSuccess
*/
A.Preverbs.hop = {
name: "hop",
prettyname: "hop",
past_tense: "flew",
synonyms: ["hop"],
type: { locomotion: true, travel: true },
extends: { go: true },
gerund: "hopping",
subject_must_be: {
not_constrained: true,
not_on_floor: true,
not_nested_elsewhere: true,
able_to_hop: true,
},
/**
* @ajsadverbs
* @memberof hop
*/
accepts_adverbs: ["left", "right", "around", "back", "towards", "over"],
/**
* @ajsverbstructures
* @memberof hop
*/
accepts_structures: [
"verb",
"verb noun",
"verb preposition",
"verb preposition noun",
"verb noun preposition noun",
],
/**
* @memberof hop
* @ajsverbphrase
* phrase1:
* {
* accepts_noun:true,
* noun_must_be:
* {
* known: true,
* tangible: true,
* present: true,
* visible: true,
* reachable: true,
* },
* accepts_preposition: true,
* },
*/
phrase1: {
accepts_noun: true,
noun_must_be: {
known: true,
tangible: true,
present: true,
visible: true,
reachable: true,
},
accepts_preposition: true,
},
/**
* @memberof hop
* @ajsverbphrase
* phrase2:
* {
* accepts_noun:true,
* noun_must_be:
* {
* known: true,
* tangible: true,
* present: true,
* visible: true,
* reachable: true,
* },
* accepts_preposition: true,
* },
*/
phrase2: {
accepts_noun: true,
noun_must_be: {
known: true,
tangible: true,
present: true,
visible: true,
reachable: true,
},
accepts_preposition: true,
},
/**
* @memberof hop
* @ajsverbparams
* with_params: {},
*/
with_params: {},
doTry: function () {
return this.game.dictionary.doVerb("go");
},
doSuccess: function () {
return this.handleSuccess();
},
}; // END hop
})();