├── .github └── FUNDING.yml ├── README.md ├── docs └── index.html ├── languages ├── index.php ├── stephino-rpg-de_DE.mo ├── stephino-rpg-es_ES.mo ├── stephino-rpg-fr_FR.mo ├── stephino-rpg-it_IT.mo ├── stephino-rpg-pt_BR.mo ├── stephino-rpg-ro_RO.mo ├── stephino-rpg-ru_RU.mo └── stephino-rpg.pot ├── lib └── Stephino │ ├── Rpg.php │ ├── Rpg │ ├── About.php │ ├── Autoloader.php │ ├── Cache │ │ ├── Ajax.php │ │ ├── Game.php │ │ └── User.php │ ├── Config.php │ ├── Config │ │ ├── Building.php │ │ ├── Buildings.php │ │ ├── Cities.php │ │ ├── City.php │ │ ├── Core.php │ │ ├── Government.php │ │ ├── Governments.php │ │ ├── Island.php │ │ ├── IslandStatue.php │ │ ├── IslandStatues.php │ │ ├── Islands.php │ │ ├── Item │ │ │ ├── Abstract.php │ │ │ ├── Collection.php │ │ │ └── Single.php │ │ ├── Modifier.php │ │ ├── Modifiers.php │ │ ├── PremiumModifier.php │ │ ├── PremiumModifiers.php │ │ ├── PremiumPackage.php │ │ ├── PremiumPackages.php │ │ ├── ResearchArea.php │ │ ├── ResearchAreas.php │ │ ├── ResearchField.php │ │ ├── ResearchFields.php │ │ ├── Ship.php │ │ ├── Ships.php │ │ ├── Trait │ │ │ ├── Cost.php │ │ │ ├── Discount.php │ │ │ ├── Entity.php │ │ │ ├── Labels.php │ │ │ ├── Modifier.php │ │ │ ├── Requirement.php │ │ │ └── XResourceAbundance.php │ │ ├── Tutorial.php │ │ ├── Tutorials.php │ │ ├── Unit.php │ │ └── Units.php │ ├── Db.php │ ├── Db │ │ ├── Model.php │ │ ├── Model │ │ │ ├── Announcement.php │ │ │ ├── Buildings.php │ │ │ ├── Cities.php │ │ │ ├── Convoys.php │ │ │ ├── Entities.php │ │ │ ├── Invoices.php │ │ │ ├── Islands.php │ │ │ ├── Messages.php │ │ │ ├── PremiumModifiers.php │ │ │ ├── Ptfs.php │ │ │ ├── Queues.php │ │ │ ├── ResearchFields.php │ │ │ ├── Sentries.php │ │ │ ├── Statistics.php │ │ │ └── Users.php │ │ ├── Table.php │ │ └── Table │ │ │ ├── Buildings.php │ │ │ ├── Cities.php │ │ │ ├── Convoys.php │ │ │ ├── Entities.php │ │ │ ├── Islands.php │ │ │ ├── Messages.php │ │ │ ├── Ptfs.php │ │ │ ├── Queues.php │ │ │ ├── ResearchFields.php │ │ │ ├── Statistics.php │ │ │ └── Users.php │ ├── Log.php │ ├── Parsedown.php │ ├── Renderer.php │ ├── Renderer │ │ ├── Ajax.php │ │ ├── Ajax │ │ │ ├── Action.php │ │ │ ├── Action │ │ │ │ ├── Account.php │ │ │ │ ├── Attack.php │ │ │ │ ├── Building.php │ │ │ │ ├── City.php │ │ │ │ ├── Entity.php │ │ │ │ ├── Island.php │ │ │ │ ├── Message.php │ │ │ │ ├── Premium.php │ │ │ │ ├── Research.php │ │ │ │ ├── Sentry.php │ │ │ │ ├── Settings.php │ │ │ │ ├── Spy.php │ │ │ │ ├── Transport.php │ │ │ │ ├── Tutorial.php │ │ │ │ └── User.php │ │ │ ├── Admin.php │ │ │ ├── Cells.php │ │ │ ├── Css.php │ │ │ ├── Dialog.php │ │ │ ├── Dialog │ │ │ │ ├── Attack.php │ │ │ │ ├── Building.php │ │ │ │ ├── City.php │ │ │ │ ├── Convoy.php │ │ │ │ ├── Entity.php │ │ │ │ ├── Help.php │ │ │ │ ├── Island.php │ │ │ │ ├── Messages.php │ │ │ │ ├── Premium.php │ │ │ │ ├── Research.php │ │ │ │ ├── Sentry.php │ │ │ │ ├── Settings.php │ │ │ │ ├── Spy.php │ │ │ │ ├── Transport.php │ │ │ │ └── User.php │ │ │ ├── Html.php │ │ │ ├── Js.php │ │ │ └── Media.php │ │ ├── Console.php │ │ └── Html.php │ ├── Task │ │ ├── Cron.php │ │ ├── Initializer.php │ │ └── Robot.php │ ├── Theme.php │ ├── TimeLapse.php │ ├── TimeLapse │ │ ├── Abstract.php │ │ ├── Convoys.php │ │ ├── Queues.php │ │ ├── Resources.php │ │ └── Support │ │ │ ├── Entities.php │ │ │ └── ResearchFields.php │ ├── Utils │ │ ├── Config.php │ │ ├── Db.php │ │ ├── Folder.php │ │ ├── Lingo.php │ │ ├── Math.php │ │ ├── Media.php │ │ ├── Pagination.php │ │ ├── Sanitizer.php │ │ └── Themes.php │ ├── WordPress.php │ └── WordPress │ │ └── RestApi.php │ ├── Zip.php │ └── Zip │ ├── BigInt.php │ ├── Enum.php │ ├── Enum │ ├── Method.php │ └── Version.php │ ├── File.php │ ├── Option │ ├── Archive.php │ └── File.php │ ├── Stream.php │ ├── StreamDeflator.php │ └── StreamInterface.php ├── license.txt ├── readme.txt ├── stephino-rpg.php ├── themes └── default │ ├── about.json │ ├── config.json │ ├── css │ └── style.css │ ├── i18n.php │ ├── img │ ├── story │ │ ├── buildings │ │ │ ├── 1 │ │ │ │ └── 512.png │ │ │ ├── 2 │ │ │ │ └── 512.png │ │ │ ├── 3 │ │ │ │ └── 512.png │ │ │ ├── 4 │ │ │ │ └── 512.png │ │ │ ├── 5 │ │ │ │ └── 512.png │ │ │ ├── 6 │ │ │ │ └── 512.png │ │ │ ├── 7 │ │ │ │ └── 512.png │ │ │ ├── 8 │ │ │ │ └── 512.png │ │ │ ├── 9 │ │ │ │ └── 512.png │ │ │ ├── 10 │ │ │ │ └── 512.png │ │ │ ├── 11 │ │ │ │ └── 512.png │ │ │ ├── 12 │ │ │ │ └── 512.png │ │ │ ├── 13 │ │ │ │ └── 512.png │ │ │ ├── 14 │ │ │ │ └── 512.png │ │ │ └── 15 │ │ │ │ └── 512.png │ │ ├── cities │ │ │ ├── 1 │ │ │ │ ├── 512-under-construction.png │ │ │ │ ├── 512-vacant-ready.png │ │ │ │ ├── 512-vacant.png │ │ │ │ ├── 512.png │ │ │ │ └── full.jpg │ │ │ └── common │ │ │ │ ├── 512-vacant-above.png │ │ │ │ └── 512-vacant.png │ │ ├── governments │ │ │ ├── 1 │ │ │ │ └── 512.png │ │ │ ├── 2 │ │ │ │ └── 512.png │ │ │ ├── 3 │ │ │ │ └── 512.png │ │ │ ├── 4 │ │ │ │ └── 512.png │ │ │ └── 5 │ │ │ │ └── 512.png │ │ ├── islandStatues │ │ │ ├── 1 │ │ │ │ ├── 512-above.png │ │ │ │ └── 512.png │ │ │ ├── 2 │ │ │ │ ├── 512-above.png │ │ │ │ └── 512.png │ │ │ ├── 3 │ │ │ │ ├── 512-above.png │ │ │ │ └── 512.png │ │ │ └── sprites │ │ │ │ └── 0.png │ │ ├── islands │ │ │ ├── 1 │ │ │ │ ├── 512.png │ │ │ │ └── full.jpg │ │ │ ├── 2 │ │ │ │ ├── 512.png │ │ │ │ └── full.jpg │ │ │ ├── 3 │ │ │ │ ├── 512.png │ │ │ │ └── full.jpg │ │ │ ├── 4 │ │ │ │ ├── 512.png │ │ │ │ └── full.jpg │ │ │ └── 5 │ │ │ │ ├── 512.png │ │ │ │ └── full.jpg │ │ ├── researchAreas │ │ │ ├── 1 │ │ │ │ └── 512.png │ │ │ ├── 2 │ │ │ │ └── 512.png │ │ │ └── 3 │ │ │ │ └── 512.png │ │ ├── researchFields │ │ │ ├── 1 │ │ │ │ └── 512.png │ │ │ ├── 2 │ │ │ │ └── 512.png │ │ │ ├── 3 │ │ │ │ └── 512.png │ │ │ ├── 4 │ │ │ │ └── 512.png │ │ │ ├── 5 │ │ │ │ └── 512.png │ │ │ ├── 6 │ │ │ │ └── 512.png │ │ │ ├── 7 │ │ │ │ └── 512.png │ │ │ ├── 8 │ │ │ │ └── 512.png │ │ │ ├── 9 │ │ │ │ └── 512.png │ │ │ ├── 10 │ │ │ │ └── 512.png │ │ │ ├── 11 │ │ │ │ └── 512.png │ │ │ ├── 12 │ │ │ │ └── 512.png │ │ │ ├── 13 │ │ │ │ └── 512.png │ │ │ ├── 14 │ │ │ │ └── 512.png │ │ │ ├── 15 │ │ │ │ └── 512.png │ │ │ ├── 16 │ │ │ │ └── 512.png │ │ │ ├── 17 │ │ │ │ └── 512.png │ │ │ └── 18 │ │ │ │ └── 512.png │ │ ├── ships │ │ │ ├── 1 │ │ │ │ └── 512.png │ │ │ ├── 2 │ │ │ │ └── 512.png │ │ │ ├── 3 │ │ │ │ └── 512.png │ │ │ ├── 4 │ │ │ │ └── 512.png │ │ │ └── 5 │ │ │ │ └── 512.png │ │ └── units │ │ │ ├── 1 │ │ │ └── 512.png │ │ │ ├── 2 │ │ │ └── 512.png │ │ │ ├── 3 │ │ │ └── 512.png │ │ │ ├── 4 │ │ │ └── 512.png │ │ │ └── 5 │ │ │ └── 512.png │ └── ui │ │ ├── 192.png │ │ ├── 512-robot.png │ │ ├── 512.png │ │ ├── 768.png │ │ ├── cursor-default.cur │ │ ├── cursor-pointer.cur │ │ ├── login │ │ ├── login-bkg.jpg │ │ ├── login-char.png │ │ ├── login-circle.png │ │ └── login-stripes.png │ │ ├── ptfs │ │ ├── ptf-buttons.png │ │ ├── ptf-player.png │ │ └── ptf-tiles.png │ │ ├── sentries │ │ ├── 1 │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ └── 5.png │ │ ├── 2 │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ └── 5.png │ │ ├── 3 │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ └── 5.png │ │ ├── 4 │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ └── 5.png │ │ └── 512.png │ │ ├── sprite-200.png │ │ └── sprite-ui.png │ ├── license.md │ ├── license.png │ └── txt │ ├── cities.txt │ ├── islands.txt │ └── sentries.txt ├── ui ├── css │ ├── bootstrap.css │ ├── game │ │ ├── city.css │ │ ├── common.css │ │ ├── island.css │ │ └── world.css │ ├── ptf │ │ └── ptf-main.css │ └── wordpress │ │ ├── wp-dashboard.css │ │ ├── wp-game.css │ │ ├── wp-login.css │ │ ├── wp-options.css │ │ └── wp-themes.css ├── fonts │ ├── Lato-Bold.woff2 │ ├── Lato-BoldLatin.woff2 │ ├── Lato-Regular.woff2 │ ├── Lato-RegularLatin.woff2 │ ├── Oxanium-Bold.ttf │ ├── Oxanium-Light.ttf │ └── Oxanium-Regular.ttf ├── help │ ├── firebase-rules.html │ └── firebase-rules.json ├── img │ ├── badge-error.gif │ ├── badge-success.gif │ ├── changelog.png │ ├── data-tables │ │ ├── sort_asc.png │ │ ├── sort_asc_disabled.png │ │ ├── sort_both.png │ │ ├── sort_desc.png │ │ └── sort_desc_disabled.png │ ├── file-icons.png │ ├── header-banner.png │ ├── icon.png │ ├── icon.svg │ ├── loading-badge.png │ └── signature.png ├── js │ ├── game │ │ ├── city.js │ │ ├── common.js │ │ ├── island.js │ │ └── world.js │ ├── phaser.js │ ├── ptf │ │ ├── ptf-list.json │ │ ├── ptf-list │ │ │ ├── 1.json │ │ │ ├── 10.json │ │ │ ├── 11.json │ │ │ ├── 12.json │ │ │ ├── 13.json │ │ │ ├── 14.json │ │ │ ├── 15.json │ │ │ ├── 2.json │ │ │ ├── 3.json │ │ │ ├── 4.json │ │ │ ├── 5.json │ │ │ ├── 6.json │ │ │ ├── 7.json │ │ │ ├── 8.json │ │ │ └── 9.json │ │ └── ptf-main.js │ ├── pwa │ │ └── pwa-worker.js │ ├── stephino.js │ └── wordpress │ │ ├── wp-dashboard.js │ │ ├── wp-game.js │ │ ├── wp-gutenberg.js │ │ ├── wp-login.js │ │ ├── wp-options.js │ │ └── wp-themes.js └── tpl │ ├── console │ ├── console-help.php │ ├── console-list-city-buildings.php │ ├── console-list-city-entities.php │ ├── console-list-city-military.php │ ├── console-list-city-resources.php │ ├── console-list-island-cities.php │ ├── console-list-ptf.php │ ├── console-list-stages.php │ ├── console-list-user-cities.php │ ├── console-list-user-convoys.php │ ├── console-list-user-resources.php │ └── console-set-user-time-travel.php │ ├── dialogs │ ├── attack │ │ ├── attack-prepare.php │ │ └── attack-review.php │ ├── building │ │ ├── building-info-entities.php │ │ ├── building-info-metrics.php │ │ ├── building-info-research-areas.php │ │ ├── building-info.php │ │ ├── building-market.php │ │ ├── building-upgrade-cancel.php │ │ └── building-upgrade.php │ ├── city │ │ ├── city-advisor.php │ │ ├── city-garrison.php │ │ ├── city-government.php │ │ ├── city-info.php │ │ ├── city-move-capital.php │ │ ├── city-queues.php │ │ ├── city-stages.php │ │ └── city-workforce.php │ ├── common │ │ ├── common-costs.php │ │ ├── common-entity-military.php │ │ ├── common-entity-prepare.php │ │ ├── common-pagination.php │ │ ├── common-production.php │ │ └── common-requirements.php │ ├── convoy │ │ └── convoy-list.php │ ├── entity │ │ ├── entity-dequeue.php │ │ ├── entity-disband.php │ │ └── entity-recruit.php │ ├── help │ │ ├── fragment │ │ │ ├── help-fragment-abundance.php │ │ │ ├── help-fragment-costs.php │ │ │ ├── help-fragment-description.php │ │ │ ├── help-fragment-discounts.php │ │ │ ├── help-fragment-poly.php │ │ │ ├── help-fragment-production.php │ │ │ ├── help-fragment-requirements.php │ │ │ └── help-fragment-unlocks.php │ │ ├── help-content-buildings.php │ │ ├── help-content-cities.php │ │ ├── help-content-core.php │ │ ├── help-content-governments.php │ │ ├── help-content-islandStatues.php │ │ ├── help-content-islands.php │ │ ├── help-content-premiumModifiers.php │ │ ├── help-content-researchAreas.php │ │ ├── help-content-researchFields.php │ │ ├── help-content-ships.php │ │ ├── help-content-units.php │ │ └── help.php │ ├── island │ │ ├── island-colonize-prepare.php │ │ ├── island-colonize-review.php │ │ ├── island-info.php │ │ └── island-upgrade.php │ ├── messages │ │ ├── messages-list.php │ │ └── messages-read.php │ ├── premium │ │ ├── premium-modifiers-details.php │ │ ├── premium-modifiers.php │ │ └── premium-packages.php │ ├── research │ │ └── research-info.php │ ├── sentry │ │ ├── sentry-challenge-list.php │ │ ├── sentry-challenge-prepare.php │ │ ├── sentry-customize.php │ │ └── sentry-info.php │ ├── settings │ │ ├── settings-about.php │ │ ├── settings-announcement.php │ │ ├── settings-delete-account.php │ │ ├── settings-info.php │ │ ├── settings-language.php │ │ └── settings-resources.php │ ├── spy │ │ └── spy-review.php │ ├── transport │ │ ├── transport-prepare.php │ │ └── transport-review.php │ └── user │ │ ├── user-arena-edit.php │ │ ├── user-arena-list-page.php │ │ ├── user-arena-list.php │ │ ├── user-arena-play-details.php │ │ ├── user-arena-play.php │ │ ├── user-cities.php │ │ ├── user-info.php │ │ ├── user-leader-board.php │ │ └── user-trade.php │ ├── notif │ ├── common │ │ └── invalid-data.php │ ├── notif-premium-modifier.php │ ├── notif-premium-package.php │ ├── notif-ptf-author-reward.php │ ├── notif-ptf-review.php │ ├── notif-tutorial-rewards.php │ ├── notif-user-game-master.php │ └── timelapse │ │ ├── list-entities.php │ │ ├── list-resources.php │ │ ├── notif-diplomacy-challenge.php │ │ ├── notif-diplomacy-colony.php │ │ ├── notif-diplomacy-discovery.php │ │ ├── notif-diplomacy-premium.php │ │ ├── notif-economy-building.php │ │ ├── notif-economy-entity.php │ │ ├── notif-economy-transport.php │ │ ├── notif-military-attack.php │ │ ├── notif-military-return.php │ │ ├── notif-military-spy.php │ │ ├── notif-research-done.php │ │ └── notif-research-unlock.php │ └── wordpress │ ├── wp-dashboard.php │ ├── wp-game.php │ ├── wp-notice.php │ ├── wp-options.php │ ├── wp-ptf.php │ └── wp-themes.php └── uninstall.php /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: https://gumroad.com/l/stephino-rpg # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Stephino RPG 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /languages/index.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | 13 | class Stephino_Rpg_Autoloader { 14 | 15 | /** 16 | * Maximum execution time in seconds; prevents zombie processes 17 | */ 18 | const TIME_LIMIT = 300; 19 | 20 | /** 21 | * Autoloader instance 22 | * 23 | * @var Stephino_Rpg_Autoloader 24 | */ 25 | protected static $_instance; 26 | 27 | /** 28 | * Singleton 29 | * 30 | * @return Stephino_Rpg_Autoloader 31 | */ 32 | public static function get() { 33 | if (!isset(self::$_instance)) { 34 | self::$_instance = new self(); 35 | } 36 | 37 | return self::$_instance; 38 | } 39 | 40 | /** 41 | * Private constructor 42 | */ 43 | protected function __construct() { 44 | // Memory limit 45 | @ini_set('memory_limit', '256M'); 46 | @ini_set('pcre.backtrack_limit', '1024M'); 47 | 48 | // Time limit 49 | set_time_limit(self::TIME_LIMIT); 50 | @ini_set('max_execution_time', self::TIME_LIMIT); 51 | @ini_set('max_input_time', self::TIME_LIMIT); 52 | 53 | // Autoloader 54 | spl_autoload_register(function ($className = '') { 55 | // Prepare the class path 56 | $classPath = str_replace(array(' ', '\\'), '/', ucwords(str_replace('_', ' ', $className))); 57 | if (file_exists($classFileName = STEPHINO_RPG_ROOT . '/lib/' . $classPath . '.php') 58 | || (defined('STEPHINO_RPG_PRO_ROOT') && file_exists($classFileName = STEPHINO_RPG_ROOT . '-pro/lib/' . $classPath . '.php'))) { 59 | require_once $classFileName; 60 | } 61 | }); 62 | } 63 | } 64 | 65 | /* EOF */ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Buildings.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Buildings extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'buildings'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_Building::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Building ID 29 | * @return Stephino_Rpg_Config_Building|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_Building|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_Building[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_Building 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Cities.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Cities extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'cities'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_City::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id City ID 29 | * @return Stephino_Rpg_Config_City|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_City|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_City[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_City 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Governments.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Governments extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'governments'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_Government::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Government ID 29 | * @return Stephino_Rpg_Config_Government|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_Government|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_Government[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_Government 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/IslandStatues.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_IslandStatues extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'islandStatues'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_IslandStatue::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Island Statue ID 29 | * @return Stephino_Rpg_Config_IslandStatue|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_IslandStatue|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_IslandStatue[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_IslandStatue 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Islands.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Islands extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'islands'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_Island::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Island ID 29 | * @return Stephino_Rpg_Config_Island|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_Island|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_Island[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_Island 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Modifiers.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Modifiers extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'modifiers'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_Modifier::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Modifier ID 29 | * @return Stephino_Rpg_Config_Modifier|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_Modifier|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_Modifier[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_Modifier 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/PremiumModifiers.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_PremiumModifiers extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'premiumModifiers'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_PremiumModifier::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Premium Modifier ID 29 | * @return Stephino_Rpg_Config_PremiumModifier|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_PremiumModifier|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_PremiumModifier[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_PremiumModifier 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/PremiumPackages.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_PremiumPackages extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'premiumPackages'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_PremiumPackage::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Premium Package ID 29 | * @return Stephino_Rpg_Config_PremiumPackage|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_PremiumPackage|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_PremiumPackage[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_PremiumPackage 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/ResearchAreas.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_ResearchAreas extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'researchAreas'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_ResearchArea::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Research ID 29 | * @return Stephino_Rpg_Config_ResearchArea|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_ResearchArea|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_ResearchArea[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_ResearchArea 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/ResearchFields.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_ResearchFields extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'researchFields'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_ResearchField::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Research Field ID 29 | * @return Stephino_Rpg_Config_ResearchField|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_ResearchField|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_ResearchField[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_ResearchField 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Ships.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Ships extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'ships'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_Ship::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Ship ID 29 | * @return Stephino_Rpg_Config_Ship|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_Ship|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_Ship[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_Ship 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Trait/Modifier.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | 13 | trait Stephino_Rpg_Config_Trait_Modifier { 14 | 15 | /** 16 | * Modifier 17 | * 18 | * @var int|null 19 | */ 20 | protected $_modifierId = null; 21 | 22 | /** 23 | * Modifier Polynomial 24 | * 25 | * @var string|null 26 | */ 27 | protected $_modifierPolynomial = null; 28 | 29 | /** 30 | * Select a set of features this item enables 31 | * 32 | * @return Stephino_Rpg_Config_Modifier|null Modifier 33 | */ 34 | public function getModifier() { 35 | return Stephino_Rpg_Config::get()->modifiers()->getById($this->_modifierId); 36 | } 37 | 38 | /** 39 | * Set the "Modifier" parameter 40 | * 41 | * @param int|null $modifierId Stephino_Rpg_Config_Modifier ID 42 | */ 43 | public function setModifier($modifierId) { 44 | $this->_modifierId = (null === $modifierId ? null : intval($modifierId)); 45 | 46 | return $this; 47 | } 48 | 49 | /** 50 | * Effects cast by the modifier are amplified with the item level 51 | * 52 | * @return poly|null Modifier polynomial 53 | */ 54 | public function getModifierPolynomial() { 55 | return $this->_modifierPolynomial; 56 | } 57 | 58 | /** 59 | * Set the "Modifier Polynomial" parameter 60 | * 61 | * @param string|null $modifierPolynomial Modifier Polynomial 62 | */ 63 | public function setModifierPolynomial($modifierPolynomial) { 64 | $this->_modifierPolynomial = $this->_sanitizePoly($modifierPolynomial); 65 | 66 | return $this; 67 | } 68 | } 69 | 70 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Trait/XResourceAbundance.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | 13 | trait Stephino_Rpg_Config_Trait_XResourceAbundance { 14 | 15 | /** 16 | * Abundance of Resource Extra 1 17 | * 18 | * @var boolean 19 | */ 20 | protected $_resourceExtra1Abundant = false; 21 | 22 | /** 23 | * Abundance of Resource Extra 2 24 | * 25 | * @var boolean 26 | */ 27 | protected $_resourceExtra2Abundant = false; 28 | 29 | /** 30 | * Forces abundance of {x} to 100% in all of our cities 31 | * 32 | * @placeholder core.resourceExtra1Name,Extra resource 1 33 | * @return boolean Abundant {x} 34 | */ 35 | public function getResourceExtra1Abundant() { 36 | return (null === $this->_resourceExtra1Abundant ? false : $this->_resourceExtra1Abundant); 37 | } 38 | 39 | /** 40 | * Set the "Resource Extra 1 Abundant" parameter 41 | * 42 | * @param boolean $abundant Abundance of Resource Extra 1 43 | */ 44 | public function setResourceExtra1Abundant($abundant) { 45 | $this->_resourceExtra1Abundant = (boolean) $abundant; 46 | 47 | return $this; 48 | } 49 | 50 | /** 51 | * Forces abundance of {x} to 100% in all of our cities 52 | * 53 | * @placeholder core.resourceExtra2Name,Extra resource 2 54 | * @return boolean Abundant {x} 55 | */ 56 | public function getResourceExtra2Abundant() { 57 | return (null === $this->_resourceExtra2Abundant ? false : $this->_resourceExtra2Abundant); 58 | } 59 | 60 | /** 61 | * Set the "Resource Extra 2 Abundant" parameter 62 | * 63 | * @param boolean $abundance Abundance of Resource Extra 2 64 | */ 65 | public function setResourceExtra2Abundant($abundance) { 66 | $this->_resourceExtra2Abundant = (boolean) $abundance; 67 | 68 | return $this; 69 | } 70 | } 71 | 72 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Tutorials.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Tutorials extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'tutorials'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_Tutorial::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Tutorial ID 29 | * @return Stephino_Rpg_Config_Tutorial|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_Tutorial|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_Tutorial[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_Tutorial 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Config/Units.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Config_Units extends Stephino_Rpg_Config_Item_Collection { 14 | 15 | /** 16 | * Serialization Key - Must be defined by each item individually 17 | */ 18 | const KEY = 'units'; 19 | 20 | /** 21 | * Class name of corresponding Single Item 22 | */ 23 | const SINGLE_CLASS = Stephino_Rpg_Config_Unit::class; 24 | 25 | /** 26 | * Get a single configuration item 27 | * 28 | * @param int $id Unit ID 29 | * @return Stephino_Rpg_Config_Unit|null 30 | */ 31 | public function getById($id) { 32 | return parent::getById($id); 33 | } 34 | 35 | /** 36 | * Get a single (random) configuration item 37 | * 38 | * @return Stephino_Rpg_Config_Unit|null 39 | */ 40 | public function getRandom() { 41 | return parent::getRandom(); 42 | } 43 | 44 | /** 45 | * Get all available single configuration items 46 | * 47 | * @return Stephino_Rpg_Config_Unit[] 48 | */ 49 | public function getAll() { 50 | return parent::getAll(); 51 | } 52 | 53 | /** 54 | * Add a new item to the collection 55 | * 56 | * @param array $data (optional) Item data; default empty array 57 | * @param int $newItemId (optional) New Item ID; default null, auto-assigned 58 | * @return Stephino_Rpg_Config_Unit 59 | */ 60 | public function add(Array $data = array(), $newItemId = null) { 61 | return parent::add($data, $newItemId); 62 | } 63 | 64 | } 65 | 66 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Db/Model.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | 13 | class Stephino_Rpg_Db_Model { 14 | 15 | /** 16 | * Model Name 17 | */ 18 | const NAME = ''; 19 | 20 | /** 21 | * Stephino_Rpg_Db reference 22 | * 23 | * @var Stephino_Rpg_Db 24 | */ 25 | private $_db = null; 26 | 27 | /** 28 | * Model definition 29 | * 30 | * @param Stephino_Rpg_Db $dbObject 31 | */ 32 | public function __construct(Stephino_Rpg_Db $dbObject) { 33 | $this->_db = $dbObject; 34 | } 35 | 36 | /** 37 | * Get the DataBase object 38 | * 39 | * @return Stephino_Rpg_Db 40 | */ 41 | protected function getDb() { 42 | return $this->_db; 43 | } 44 | 45 | } 46 | 47 | /* EOF */ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Log.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Log { 14 | 15 | /** 16 | * Debug logging 17 | * 18 | * @ignore 19 | */ 20 | public static function debug() { 21 | // Disabled in production 22 | } 23 | 24 | /** 25 | * Debug logging (file and line from parent caller) 26 | * 27 | * @ignore 28 | */ 29 | public static function debugParent() { 30 | // Disabled in production 31 | } 32 | 33 | /** 34 | * Info logging 35 | * 36 | * @ignore 37 | */ 38 | public static function info() { 39 | // Disabled in production 40 | } 41 | 42 | /** 43 | * Info logging (file and line from parent caller) 44 | * 45 | * @ignore 46 | */ 47 | public static function infoParent() { 48 | // Disabled in production 49 | } 50 | 51 | /** 52 | * Warning logging 53 | * 54 | * @ignore 55 | */ 56 | public static function warning() { 57 | // Disabled in production 58 | } 59 | 60 | /** 61 | * Warning logging (file and line from parent caller) 62 | * 63 | * @ignore 64 | */ 65 | public static function warningParent() { 66 | // Disabled in production 67 | } 68 | 69 | /** 70 | * Error logging 71 | * 72 | * @ignore 73 | */ 74 | public static function error() { 75 | // Disabled in production 76 | } 77 | 78 | /** 79 | * Error logging (file and line from parent caller) 80 | * 81 | * @ignore 82 | */ 83 | public static function errorParent() { 84 | // Disabled in production 85 | } 86 | 87 | /** 88 | * Check whether logs are used; returns false in production 89 | * 90 | * @return boolean 91 | */ 92 | public static function check() { 93 | // Disabled in production 94 | return false; 95 | // 96 | } 97 | 98 | /** 99 | * Log helper 100 | * 101 | * @ignore 102 | * @param array $data Function arguments 103 | * @return mixed 104 | */ 105 | protected static function _print($data) { 106 | // Disabled in production 107 | } 108 | } 109 | 110 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Renderer/Ajax/Action/Account.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Renderer_Ajax_Action_Account extends Stephino_Rpg_Renderer_Ajax_Action { 14 | 15 | /** 16 | * Log out 17 | */ 18 | public static function ajaxLogOut() { 19 | // Logout 20 | wp_logout(); 21 | } 22 | 23 | /** 24 | * Permanently delete the current user account and all associated posts/links/comments 25 | * 26 | * @throws Exception 27 | */ 28 | public static function ajaxDelete() { 29 | if (null !== $userData = Stephino_Rpg_Db::get()->tableUsers()->getData()) { 30 | // Remove the user from the game completely 31 | Stephino_Rpg_Db::get()->modelUsers()->delete($userData[Stephino_Rpg_Db_Table_Users::COL_ID], true); 32 | } 33 | 34 | // Logout 35 | wp_logout(); 36 | } 37 | } 38 | 39 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Renderer/Ajax/Action/Attack.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Renderer_Ajax_Action_Attack extends Stephino_Rpg_Renderer_Ajax_Action { 14 | 15 | // Request keys 16 | const REQUEST_ATT_CITY_ID = 'attCityId'; 17 | const REQUEST_DEF_CITY_ID = 'defCityId'; 18 | const REQUEST_ARMY = 'army'; 19 | 20 | /** 21 | * Start an attack 22 | * 23 | * @param array $data Data containing 28 | * @return array 29 | * @throws Exception 30 | */ 31 | public static function ajaxStart($data) { 32 | // Prepare the attacking city ID 33 | $attackerCityId = isset($data[self::REQUEST_ATT_CITY_ID]) ? intval($data[self::REQUEST_ATT_CITY_ID]) : null; 34 | $defenderCityId = isset($data[self::REQUEST_DEF_CITY_ID]) ? intval($data[self::REQUEST_DEF_CITY_ID]) : null; 35 | $army = isset($data[self::REQUEST_ARMY]) ? $data[self::REQUEST_ARMY] : null; 36 | 37 | // Must send attacks from our cities only 38 | self::getCityInfo($attackerCityId); 39 | 40 | // Create the attack 41 | $result = Stephino_Rpg_Db::get()->modelConvoys()->createAttack( 42 | $attackerCityId, 43 | $defenderCityId, 44 | $army 45 | ); 46 | 47 | return Stephino_Rpg_Renderer_Ajax::wrap($result); 48 | } 49 | } 50 | 51 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Renderer/Ajax/Action/Spy.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Renderer_Ajax_Action_Spy extends Stephino_Rpg_Renderer_Ajax_Action { 14 | 15 | // Request keys 16 | const REQUEST_TO_CITY_ID = 'toCityId'; 17 | const REQUEST_SPY_CITY_ID = 'spyCityId'; 18 | const REQUEST_SPY_ENTITY_ID = 'spyEntityId'; 19 | 20 | /** 21 | * Start a spy mission 22 | * 23 | * @param array $data Data containing 27 | * @return array 28 | * @throws Exception 29 | */ 30 | public static function ajaxStart($data) { 31 | // Prepare the origin city ID 32 | $originCityId = isset($data[self::REQUEST_SPY_CITY_ID]) ? intval($data[self::REQUEST_SPY_CITY_ID]) : null; 33 | $originEntityId = isset($data[self::REQUEST_SPY_ENTITY_ID]) ? intval($data[self::REQUEST_SPY_ENTITY_ID]) : null; 34 | 35 | // Prepare the destination city ID 36 | $destinationCityId = isset($data[self::REQUEST_TO_CITY_ID]) ? intval($data[self::REQUEST_TO_CITY_ID]) : null; 37 | 38 | // Get the destination city information 39 | if (null === $destinationCityInfo = Stephino_Rpg_Db::get()->tableCities()->getById($destinationCityId)) { 40 | throw new Exception(__('Destination does not exist', 'stephino-rpg')); 41 | } 42 | 43 | // Prepare the spies list; nothing to exclude 44 | $spiesList = self::getAllEntities( 45 | $destinationCityId, 46 | array( 47 | Stephino_Rpg_Db_Table_Convoys::CONVOY_TYPE_SPY 48 | ), 49 | true 50 | ); 51 | 52 | // City has no spies 53 | if (!isset($spiesList[$originCityId])) { 54 | throw new Exception(__('Spy not available', 'stephino-rpg')); 55 | } 56 | 57 | // This spy does not exist 58 | if (!isset($spiesList[$originCityId][1][$originEntityId])) { 59 | throw new Exception(__('Spy not initialized', 'stephino-rpg')); 60 | } 61 | 62 | // Get the spy information 63 | list($entityDbRow) = $spiesList[$originCityId][1][$originEntityId]; 64 | 65 | // No more spies left 66 | if ($entityDbRow[Stephino_Rpg_Db_Table_Entities::COL_ENTITY_COUNT] < 1) { 67 | throw new Exception(__('Spy not available', 'stephino-rpg')); 68 | } 69 | 70 | // Create the convoy 71 | $result = Stephino_Rpg_Db::get()->modelConvoys()->createSpy( 72 | $originCityId, 73 | $originEntityId, 74 | $destinationCityId 75 | ); 76 | 77 | return Stephino_Rpg_Renderer_Ajax::wrap($result); 78 | } 79 | } 80 | 81 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Renderer/Ajax/Dialog.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Renderer_Ajax_Dialog { 14 | 15 | // Common templates 16 | const TEMPLATE_COMMON_COSTS = 'common/common-costs'; 17 | const TEMPLATE_COMMON_ENTITY_MILITARY = 'common/common-entity-military'; 18 | const TEMPLATE_COMMON_ENTITY_PREPARE = 'common/common-entity-prepare'; 19 | const TEMPLATE_COMMON_PAGINATION = 'common/common-pagination'; 20 | const TEMPLATE_COMMON_PRODUCTION = 'common/common-production'; 21 | const TEMPLATE_COMMON_REQUIREMENTS = 'common/common-requirements'; 22 | 23 | // Common request keys 24 | const REQUEST_CITY_ID = 'cityId'; 25 | const REQUEST_COMMON_ARGS = 'commonArgs'; 26 | 27 | // Result keys 28 | const RESULT_TITLE = 'title'; 29 | const RESULT_DATA = 'data'; 30 | 31 | // Modal sizes 32 | const MODAL_SIZE_LARGE = true; 33 | const MODAL_SIZE_NORMAL = null; 34 | const MODAL_SIZE_SMALL = false; 35 | 36 | /** 37 | * Modal Size: false for "md", null for normal, true for "xl" 38 | * 39 | * @var boolean|null 40 | */ 41 | protected static $_modalSize = null; 42 | 43 | /** 44 | * Get the dialog size 49 | * 50 | * @return boolean|null 51 | */ 52 | public static function getModalSize() { 53 | return self::$_modalSize; 54 | } 55 | 56 | /** 57 | * Set the modal size 62 | * 63 | * @param boolean|null $modalSize Dialog size flag 64 | */ 65 | public static function setModalSize($modalSize = null) { 66 | self::$_modalSize = (null === $modalSize ? null : (boolean) $modalSize); 67 | } 68 | 69 | /** 70 | * Get a dialog template path 71 | * 72 | * @param string $templateName Dialog template name 73 | * @return string|null 74 | */ 75 | public static function dialogTemplatePath($templateName) { 76 | if (!is_file($templatePath = STEPHINO_RPG_ROOT . '/' . Stephino_Rpg::FOLDER_UI_TPL . '/dialogs/' . $templateName . '.php')) { 77 | throw new Exception( 78 | sprintf( 79 | 'Dialog template "%s" not found', 80 | $templateName 81 | ) 82 | ); 83 | } 84 | return $templatePath; 85 | } 86 | } 87 | 88 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Renderer/Ajax/Dialog/Convoy.php: -------------------------------------------------------------------------------- 1 | 10 | * @package ThemeWarlock 11 | * @since TW 1.0 12 | */ 13 | class Stephino_Rpg_Renderer_Ajax_Dialog_Convoy extends Stephino_Rpg_Renderer_Ajax_Dialog { 14 | 15 | // Dialog templates 16 | const TEMPLATE_LIST = 'convoy/convoy-list'; 17 | 18 | /** 19 | * Show all the current convoys 20 | */ 21 | public static function ajaxList() { 22 | // Get the convoys 23 | $convoyList = Stephino_Rpg_TimeLapse::get()->worker(Stephino_Rpg_TimeLapse_Convoys::KEY)->getData(); 24 | 25 | // Show the dialog 26 | require self::dialogTemplatePath(self::TEMPLATE_LIST); 27 | 28 | return Stephino_Rpg_Renderer_Ajax::wrap( 29 | array( 30 | self::RESULT_TITLE => __('Convoys', 'stephino-rpg'), 31 | ) 32 | ); 33 | } 34 | } 35 | 36 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Renderer/Ajax/Dialog/Spy.php: -------------------------------------------------------------------------------- 1 | 10 | * @package ThemeWarlock 11 | * @since TW 1.0 12 | */ 13 | class Stephino_Rpg_Renderer_Ajax_Dialog_Spy extends Stephino_Rpg_Renderer_Ajax_Dialog { 14 | 15 | // Dialog templates 16 | const TEMPLATE_REVIEW = 'spy/spy-review'; 17 | 18 | // Request keys 19 | const REQUEST_TO_CITY_ID = 'toCityId'; 20 | const REQUEST_FROM_CITY_ID = 'fromCityId'; 21 | 22 | /** 23 | * Send a spy dialog 24 | * 25 | * @param array $data Empty array 26 | */ 27 | public static function ajaxReview($data) { 28 | // Prepare the destination city ID 29 | $destinationCityId = isset($data[self::REQUEST_TO_CITY_ID]) ? intval($data[self::REQUEST_TO_CITY_ID]) : null; 30 | 31 | // Get the destination city information 32 | if (null === $destinationCityInfo = Stephino_Rpg_Db::get()->tableCities()->getById($destinationCityId)) { 33 | throw new Exception(__('Destination does not exist', 'stephino-rpg')); 34 | } 35 | 36 | // Prepare the spies list; nothing to exclude 37 | $spiesList = Stephino_Rpg_Renderer_Ajax_Action::getAllEntities( 38 | $destinationCityId, 39 | array( 40 | Stephino_Rpg_Db_Table_Convoys::CONVOY_TYPE_SPY 41 | ), 42 | true 43 | ); 44 | 45 | // Show the dialog 46 | require self::dialogTemplatePath(self::TEMPLATE_REVIEW); 47 | 48 | return Stephino_Rpg_Renderer_Ajax::wrap( 49 | array( 50 | self::RESULT_TITLE => __('Send a spy', 'stephino-rpg'), 51 | ) 52 | ); 53 | } 54 | } 55 | 56 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/Renderer/Ajax/Media.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Rpg_Renderer_Ajax_Media { 14 | 15 | /** 16 | * Find file information for the requested media 17 | * 18 | * @return string File path 19 | * @throws Exception 20 | */ 21 | public static function ajaxMedia() { 22 | if (!is_file($filePath = Stephino_Rpg_Utils_Themes::getActive()->getFilePath( 23 | Stephino_Rpg_Utils_Sanitizer::getMediaPath() 24 | ))) { 25 | throw new Exception('File not found: ' . $filePath); 26 | } 27 | 28 | return $filePath; 29 | } 30 | } 31 | 32 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/TimeLapse/Support/Entities.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | 13 | class Stephino_Rpg_TimeLapse_Support_Entities extends Stephino_Rpg_TimeLapse_Abstract { 14 | 15 | /** 16 | * Time-Lapse::Support::Entities 17 | */ 18 | const KEY = 'Support_Entities'; 19 | 20 | /** 21 | * Stepper 22 | * 23 | * @param int $checkPointTime UNIX timestamp 24 | * @param int $checkPointDelta Time difference in seconds from the last timestamp 25 | */ 26 | public function step($checkPointTime, $checkPointDelta) { 27 | $this->_stepTime = $checkPointTime; 28 | 29 | // Nothing to do - Support structure 30 | } 31 | 32 | /** 33 | * Get the definition for removals on save() 34 | * 35 | * @return array 36 | */ 37 | protected function _getDeleteStructure() { 38 | // Entities cannot be removed by time-lapse 39 | return array(); 40 | } 41 | 42 | /** 43 | * Get the table structure that needs to be updated on save() 44 | * 45 | * @return array 46 | */ 47 | protected function _getUpdateStructure() { 48 | return array( 49 | $this->getDb()->tableEntities()->getTableName() => array( 50 | Stephino_Rpg_Db_Table_Entities::COL_ID, 51 | array( 52 | Stephino_Rpg_Db_Table_Entities::COL_ENTITY_COUNT, 53 | ) 54 | ), 55 | ); 56 | } 57 | 58 | /** 59 | * Initialize the worker data 60 | * 61 | * @return array 62 | */ 63 | protected function _initData() { 64 | return $this->getDb()->getWpdb()->get_results( 65 | Stephino_Rpg_Utils_Db::selectAll( 66 | $this->getDb()->tableEntities(), 67 | array( 68 | Stephino_Rpg_Db_Table_Entities::COL_ENTITY_USER_ID => $this->_userId 69 | ) 70 | ), 71 | ARRAY_A 72 | ); 73 | } 74 | } 75 | 76 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Rpg/TimeLapse/Support/ResearchFields.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | 13 | class Stephino_Rpg_TimeLapse_Support_ResearchFields extends Stephino_Rpg_TimeLapse_Abstract { 14 | 15 | /** 16 | * Time-Lapse::Support::ResearchFields 17 | */ 18 | const KEY = 'Support_ResearchFields'; 19 | 20 | /** 21 | * Stepper 22 | * 23 | * @param int $checkPointTime UNIX timestamp 24 | * @param int $checkPointDelta Time difference in seconds from the last timestamp 25 | */ 26 | public function step($checkPointTime, $checkPointDelta) { 27 | $this->_stepTime = $checkPointTime; 28 | 29 | // Nothing to do - Support structure 30 | } 31 | 32 | /** 33 | * Get the definition for removals on save() 34 | * 35 | * @return array 36 | */ 37 | protected function _getDeleteStructure() { 38 | // Research fields cannot be removed by time-lapse 39 | return array(); 40 | } 41 | 42 | /** 43 | * Get the table structure that needs to be updated on save() 44 | * 45 | * @return array 46 | */ 47 | protected function _getUpdateStructure() { 48 | return array( 49 | $this->getDb()->tableResearchFields()->getTableName() => array( 50 | Stephino_Rpg_Db_Table_ResearchFields::COL_ID, 51 | array( 52 | Stephino_Rpg_Db_Table_ResearchFields::COL_RESEARCH_FIELD_LEVEL, 53 | ), 54 | ), 55 | ); 56 | } 57 | 58 | /** 59 | * Initialize the worker data 60 | * 61 | * @return array 62 | */ 63 | protected function _initData() { 64 | return $this->getDb()->getWpdb()->get_results( 65 | Stephino_Rpg_Utils_Db::selectAll( 66 | $this->getDb()->tableResearchFields(), 67 | array( 68 | Stephino_Rpg_Db_Table_ResearchFields::COL_RESEARCH_FIELD_USER_ID => $this->_userId 69 | ) 70 | ), 71 | ARRAY_A 72 | ); 73 | } 74 | } 75 | 76 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Zip/Enum/Method.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | * 13 | * @method static STORE(): Stephino_Zip_Enum_Method 14 | * @method static DEFLATE(): Stephino_Zip_Enum_Method 15 | */ 16 | class Stephino_Zip_Enum_Method extends Stephino_Zip_Enum { 17 | 18 | const STORE = 0x00; 19 | const DEFLATE = 0x08; 20 | 21 | } 22 | 23 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Zip/Enum/Version.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | * 13 | * @method static STORE(): Stephino_Zip_Enum_Version 14 | * @method static DEFLATE(): Stephino_Zip_Enum_Version 15 | * @method static ZIP64(): Stephino_Zip_Enum_Version 16 | */ 17 | class Stephino_Zip_Enum_Version extends Stephino_Zip_Enum { 18 | 19 | const STORE = 0x000A; // 1.00 20 | const DEFLATE = 0x0014; // 2.00 21 | const ZIP64 = 0x002D; // 4.50 22 | 23 | } 24 | 25 | /*EOF*/ -------------------------------------------------------------------------------- /lib/Stephino/Zip/StreamDeflator.php: -------------------------------------------------------------------------------- 1 | 10 | * @package stephino-rpg 11 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 12 | */ 13 | class Stephino_Zip_StreamDeflator extends Stephino_Zip_Stream { 14 | 15 | protected $_filter; 16 | 17 | /** 18 | * @var Stephino_Zip_Option_File 19 | */ 20 | protected $_options; 21 | 22 | /** 23 | * Rewind stream 24 | * 25 | * @return void 26 | */ 27 | public function rewind() { 28 | // deflate filter needs to be removed before rewind 29 | if ($this->_filter) { 30 | $this->removeDeflateFilter(); 31 | $this->seek(0); 32 | $this->addDeflateFilter($this->_options); 33 | } else { 34 | rewind($this->_stream); 35 | } 36 | } 37 | 38 | /** 39 | * Remove the deflate filter 40 | * 41 | * @return void 42 | */ 43 | public function removeDeflateFilter() { 44 | if (!$this->_filter) { 45 | return; 46 | } 47 | stream_filter_remove($this->_filter); 48 | $this->_filter = null; 49 | } 50 | 51 | /** 52 | * Add a deflate filter 53 | * 54 | * @param Stephino_Zip_Option_File $options 55 | * @return void 56 | */ 57 | public function addDeflateFilter(Stephino_Zip_Option_File $options) { 58 | $this->_options = $options; 59 | // parameter 4 for stream_filter_append expects array 60 | // so we convert the option object in an array 61 | $optionsArr = [ 62 | 'comment' => $options->getComment(), 63 | 'method' => $options->getMethod(), 64 | 'deflateLevel' => $options->getDeflateLevel(), 65 | 'time' => $options->getTime() 66 | ]; 67 | $this->_filter = stream_filter_append( 68 | $this->_stream, 69 | 'zlib.deflate', 70 | STREAM_FILTER_READ, 71 | $optionsArr 72 | ); 73 | } 74 | } 75 | 76 | /* EOF */ -------------------------------------------------------------------------------- /stephino-rpg.php: -------------------------------------------------------------------------------- 1 | 18 | * @package stephino-rpg 19 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 20 | */ 21 | !defined('ABSPATH') && exit(); 22 | 23 | // Define the root 24 | define('STEPHINO_RPG_ROOT', dirname(__FILE__)); 25 | 26 | // Prepare the autoloader 27 | require_once STEPHINO_RPG_ROOT . '/lib/Stephino/Rpg/Autoloader.php'; 28 | Stephino_Rpg_Autoloader::get(); 29 | 30 | // Start the game! 31 | Stephino_Rpg::get(); 32 | 33 | /*EOF*/ -------------------------------------------------------------------------------- /themes/default/about.json: -------------------------------------------------------------------------------- 1 | { 2 | "themeAuthorName": "Mark Jivko", 3 | "themeAuthorUrl": "https://stephino.com" 4 | } -------------------------------------------------------------------------------- /themes/default/css/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/css/style.css -------------------------------------------------------------------------------- /themes/default/img/story/buildings/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/10/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/10/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/11/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/11/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/12/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/12/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/13/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/13/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/14/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/14/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/15/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/15/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/4/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/4/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/5/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/5/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/6/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/6/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/7/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/7/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/8/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/8/512.png -------------------------------------------------------------------------------- /themes/default/img/story/buildings/9/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/buildings/9/512.png -------------------------------------------------------------------------------- /themes/default/img/story/cities/1/512-under-construction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/cities/1/512-under-construction.png -------------------------------------------------------------------------------- /themes/default/img/story/cities/1/512-vacant-ready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/cities/1/512-vacant-ready.png -------------------------------------------------------------------------------- /themes/default/img/story/cities/1/512-vacant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/cities/1/512-vacant.png -------------------------------------------------------------------------------- /themes/default/img/story/cities/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/cities/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/cities/1/full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/cities/1/full.jpg -------------------------------------------------------------------------------- /themes/default/img/story/cities/common/512-vacant-above.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/cities/common/512-vacant-above.png -------------------------------------------------------------------------------- /themes/default/img/story/cities/common/512-vacant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/cities/common/512-vacant.png -------------------------------------------------------------------------------- /themes/default/img/story/governments/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/governments/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/governments/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/governments/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/governments/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/governments/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/governments/4/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/governments/4/512.png -------------------------------------------------------------------------------- /themes/default/img/story/governments/5/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/governments/5/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islandStatues/1/512-above.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islandStatues/1/512-above.png -------------------------------------------------------------------------------- /themes/default/img/story/islandStatues/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islandStatues/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islandStatues/2/512-above.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islandStatues/2/512-above.png -------------------------------------------------------------------------------- /themes/default/img/story/islandStatues/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islandStatues/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islandStatues/3/512-above.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islandStatues/3/512-above.png -------------------------------------------------------------------------------- /themes/default/img/story/islandStatues/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islandStatues/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islandStatues/sprites/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islandStatues/sprites/0.png -------------------------------------------------------------------------------- /themes/default/img/story/islands/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islands/1/full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/1/full.jpg -------------------------------------------------------------------------------- /themes/default/img/story/islands/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islands/2/full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/2/full.jpg -------------------------------------------------------------------------------- /themes/default/img/story/islands/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islands/3/full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/3/full.jpg -------------------------------------------------------------------------------- /themes/default/img/story/islands/4/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/4/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islands/4/full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/4/full.jpg -------------------------------------------------------------------------------- /themes/default/img/story/islands/5/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/5/512.png -------------------------------------------------------------------------------- /themes/default/img/story/islands/5/full.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/islands/5/full.jpg -------------------------------------------------------------------------------- /themes/default/img/story/researchAreas/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchAreas/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchAreas/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchAreas/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchAreas/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchAreas/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/10/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/10/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/11/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/11/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/12/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/12/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/13/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/13/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/14/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/14/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/15/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/15/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/16/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/16/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/17/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/17/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/18/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/18/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/4/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/4/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/5/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/5/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/6/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/6/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/7/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/7/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/8/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/8/512.png -------------------------------------------------------------------------------- /themes/default/img/story/researchFields/9/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/researchFields/9/512.png -------------------------------------------------------------------------------- /themes/default/img/story/ships/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/ships/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/ships/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/ships/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/ships/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/ships/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/ships/4/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/ships/4/512.png -------------------------------------------------------------------------------- /themes/default/img/story/ships/5/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/ships/5/512.png -------------------------------------------------------------------------------- /themes/default/img/story/units/1/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/units/1/512.png -------------------------------------------------------------------------------- /themes/default/img/story/units/2/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/units/2/512.png -------------------------------------------------------------------------------- /themes/default/img/story/units/3/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/units/3/512.png -------------------------------------------------------------------------------- /themes/default/img/story/units/4/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/units/4/512.png -------------------------------------------------------------------------------- /themes/default/img/story/units/5/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/story/units/5/512.png -------------------------------------------------------------------------------- /themes/default/img/ui/192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/192.png -------------------------------------------------------------------------------- /themes/default/img/ui/512-robot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/512-robot.png -------------------------------------------------------------------------------- /themes/default/img/ui/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/512.png -------------------------------------------------------------------------------- /themes/default/img/ui/768.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/768.png -------------------------------------------------------------------------------- /themes/default/img/ui/cursor-default.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/cursor-default.cur -------------------------------------------------------------------------------- /themes/default/img/ui/cursor-pointer.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/cursor-pointer.cur -------------------------------------------------------------------------------- /themes/default/img/ui/login/login-bkg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/login/login-bkg.jpg -------------------------------------------------------------------------------- /themes/default/img/ui/login/login-char.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/login/login-char.png -------------------------------------------------------------------------------- /themes/default/img/ui/login/login-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/login/login-circle.png -------------------------------------------------------------------------------- /themes/default/img/ui/login/login-stripes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/login/login-stripes.png -------------------------------------------------------------------------------- /themes/default/img/ui/ptfs/ptf-buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/ptfs/ptf-buttons.png -------------------------------------------------------------------------------- /themes/default/img/ui/ptfs/ptf-player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/ptfs/ptf-player.png -------------------------------------------------------------------------------- /themes/default/img/ui/ptfs/ptf-tiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/ptfs/ptf-tiles.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/1/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/1/1.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/1/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/1/2.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/1/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/1/3.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/1/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/1/4.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/1/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/1/5.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/2/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/2/1.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/2/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/2/2.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/2/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/2/3.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/2/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/2/4.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/2/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/2/5.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/3/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/3/1.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/3/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/3/2.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/3/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/3/3.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/3/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/3/4.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/3/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/3/5.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/4/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/4/1.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/4/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/4/2.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/4/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/4/3.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/4/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/4/4.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/4/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/4/5.png -------------------------------------------------------------------------------- /themes/default/img/ui/sentries/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sentries/512.png -------------------------------------------------------------------------------- /themes/default/img/ui/sprite-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sprite-200.png -------------------------------------------------------------------------------- /themes/default/img/ui/sprite-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/img/ui/sprite-ui.png -------------------------------------------------------------------------------- /themes/default/license.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/themes/default/license.png -------------------------------------------------------------------------------- /themes/default/txt/sentries.txt: -------------------------------------------------------------------------------- 1 | Abigail 2 | Ace 3 | Adam 4 | Addie 5 | Admiral 6 | Aggie 7 | Aires 8 | Aj 9 | Ajax 10 | Aldo 11 | Alex 12 | Alexus 13 | Alf 14 | Alfie 15 | Allie 16 | Ally 17 | Amber 18 | Amie 19 | Amigo 20 | Amos 21 | Amy 22 | Andy 23 | Angel 24 | Angus 25 | Annie 26 | Apollo 27 | April 28 | Archie 29 | Argus 30 | Aries 31 | Armanti 32 | Arnie 33 | Arrow 34 | Ashes 35 | Ashley 36 | Astro 37 | Athena 38 | Atlas 39 | Audi 40 | Augie 41 | Aussie 42 | Austin 43 | Autumn 44 | Axel 45 | Axle 46 | Babbles 47 | Babe 48 | Baby 49 | Baby-doll 50 | Babykins 51 | Bacchus 52 | Bailey 53 | Bam-bam 54 | Bambi 55 | Bandit 56 | Banjo 57 | Barbie 58 | Barclay 59 | Barker 60 | Barkley 61 | Barley 62 | Barnaby 63 | Barney 64 | Baron 65 | Bart 66 | Basil 67 | Baxter 68 | Bb 69 | Beamer 70 | Beanie 71 | Beans 72 | Bear 73 | Beau 74 | Beauty 75 | Beaux 76 | Bebe 77 | Beetle 78 | Bella 79 | Belle 80 | Ben 81 | Benji 82 | Benny 83 | Benson 84 | Bentley 85 | Bernie 86 | Bessie 87 | Biablo 88 | Bibbles 89 | Big Boy 90 | Big Foot 91 | Biggie 92 | Billie 93 | Billy 94 | Bingo 95 | Binky 96 | Birdie 97 | Birdy 98 | Biscuit 99 | Bishop 100 | Gus 101 | Guy 102 | Gypsy 103 | Hailey 104 | Haley 105 | Hallie 106 | Hamlet 107 | Hammer 108 | Hank 109 | Hanna 110 | Hannah 111 | Hans 112 | Happy 113 | Hardy 114 | Harley 115 | Harpo 116 | Harrison 117 | Harry 118 | Harvey 119 | Heather 120 | Heidi 121 | Henry 122 | Hercules 123 | Hershey 124 | Higgins 125 | Hobbes 126 | Holly 127 | Homer 128 | Honey 129 | Honey-Bear 130 | Hooch 131 | Hoover 132 | Hope 133 | Houdini 134 | Howie 135 | Hudson 136 | Huey 137 | Hugh 138 | Hugo 139 | Humphrey 140 | Hunter 141 | India 142 | Indy 143 | Iris 144 | Isabella 145 | Isabelle 146 | Itsy 147 | Itsy-bitsy 148 | Ivory 149 | Ivy 150 | Izzy 151 | Jack 152 | Jackie 153 | Jackpot 154 | Jackson 155 | Jade 156 | Jagger 157 | Jags 158 | Jaguar 159 | Jake 160 | Jamie 161 | Jasmine 162 | Jasper 163 | Jaxson 164 | Jazmie 165 | Jazz 166 | Jelly 167 | Jelly-bean 168 | Jenna 169 | Jenny 170 | Jerry 171 | Jersey 172 | Jess 173 | Jesse 174 | Jesse James 175 | Jessie 176 | Jester 177 | Jet 178 | Jethro 179 | Jett 180 | Jetta 181 | Jewel 182 | Jewels 183 | Jimmy 184 | Jingles 185 | JJ 186 | Joe 187 | Joey 188 | Johnny 189 | Jojo 190 | Joker 191 | Jolie 192 | Jolly 193 | Jordan 194 | Josie 195 | Joy 196 | JR 197 | Judy 198 | Julius 199 | June 200 | Misty 201 | Mitch 202 | Mittens 203 | Mitzi 204 | Mitzy 205 | Mo 206 | Mocha 207 | Mollie 208 | Molly 209 | Mona 210 | Muffy 211 | Nakita 212 | Nala 213 | Nana 214 | Natasha 215 | Nellie 216 | Nemo 217 | Nena 218 | Peanut 219 | Peanuts 220 | Pearl 221 | Pebbles 222 | Penny 223 | Phoebe 224 | Phoenix 225 | Sara 226 | Sarah 227 | Sasha 228 | Sassie 229 | Sassy 230 | Savannah 231 | Scarlett 232 | Shasta 233 | Sheba 234 | Sheena 235 | Shelby 236 | Shelly 237 | Sienna 238 | Sierra 239 | Silky 240 | Silver 241 | Simone 242 | Sissy 243 | Skeeter 244 | Sky 245 | Skye 246 | Skyler 247 | Waldo 248 | Wallace 249 | Wally 250 | Walter 251 | Wayne 252 | Weaver 253 | Webster 254 | Wesley 255 | Westie -------------------------------------------------------------------------------- /ui/css/game/city.css: -------------------------------------------------------------------------------- 1 | /*Game:City*/[data-role="map"],[data-role="map"] .cell,[data-role="map"] [data-role="action-area"],[data-role="map"] .cell-padding { width: 64px; height: 64px;}[data-role="map"] .cell .items-holder { z-index: 1;}[data-role="map"] .cell[data-upg="true"] .cell-item > b { display: block; width: 50px; height: 50px; margin-right: 25px; position: absolute; right: 10%; top: 0px; background-position: -112px -360px; -webkit-animation: anim-new-message 0.8s infinite both; animation: anim-new-message 0.8s infinite both; z-index: 1; -webkit-filter: hue-rotate(80deg) brightness(2); filter: hue-rotate(80deg) brightness(2);}[data-role="map"] .cell[data-upg="true"].hover .cell-item > b { -webkit-filter: brightness(2); filter: brightness(2);}[data-role="map"] .cell .items-holder .cell-item .cell-item-uc { width: 100%; height: 100%; position: absolute; top: 0; left: 0; display: none;}[data-role="map"] .cell .items-holder .cell-item .cell-item-uc .label { position: absolute; z-index: 2; width: 30%; display: inline-block; vertical-align: middle; text-align: center; font-size: 20px; -webkit-transform: translate(-50%, 0) scale(1.5); -ms-transform: translate(-50%, 0) scale(1.5); transform: translate(-50%, 0) scale(1.5); left: 50%; bottom: 50px; -webkit-filter: hue-rotate(90deg); filter: hue-rotate(90deg);}[data-role="map"] .cell[data-uc="true"] .items-holder .cell-item { background-image: none !important;}[data-role="map"] .cell .items-holder [anim-uc="true"],[data-role="map"] .cell[data-uc="true"] .items-holder [anim],[data-role="map"] .cell[data-uc="true"] .cell-item > i,[data-role="map"] .cell[cell-vacant="true"] .cell-item > b { display: none;}[data-role="map"] .cell[data-uc="true"] .items-holder .cell-item .cell-item-uc,[data-role="map"] .cell[data-uc="true"] .items-holder [anim-uc="true"] { display: block;}@media (max-aspect-ratio: 1/1) and (min-width: 256px),(min-aspect-ratio: 1/1) and (min-height: 256px) { [data-role="map"], [data-role="map"] .cell, [data-role="map"] [data-role="action-area"], [data-role="map"] .cell-padding { width: 128px; height: 128px; }}@media (max-aspect-ratio: 1/1) and (min-width: 512px),(min-aspect-ratio: 1/1) and (min-height: 512px) { [data-role="map"], [data-role="map"] .cell, [data-role="map"] [data-role="action-area"], [data-role="map"] .cell-padding { width: 256px; height: 256px; }}[data-role="action-area"] { z-index: 3; position: absolute; width: 512px; height: 512px;}[data-role="action-area"] .path { cursor: url("__MEDIA_URL__/img/ui/cursor-pointer.cur"), pointer;}svg[data-role="action-area"] { overflow: visible; width: 200%; height: 200%;}div[data-role="action-area"] > .path { width: 200%; height: 200%;}div[data-role="action-area"] > .path.vacant { border-radius: 50%; -webkit-transform: scaley(0.6); -ms-transform: scaley(0.6); transform: scaley(0.6);}.modal .building-body { margin-top: 20px;}[data-role="map"] .cell.hover > .items-holder > .cell-item { -webkit-filter: drop-shadow(0px 0px 10px #ff631e); filter: drop-shadow(0px 0px 10px #ff631e);}/*End of Game:City*/ -------------------------------------------------------------------------------- /ui/css/game/island.css: -------------------------------------------------------------------------------- 1 | /*Game:Island*/[data-role="map"] .cell[cell-type="cities"] .cell-item.vacant { z-index: 0 !important; background: url("__MEDIA_URL__/img/story/cities/common/512-vacant.png") no-repeat transparent; -webkit-transform: scale(0.5) !important; -ms-transform: scale(0.5) !important; transform: scale(0.5) !important; -webkit-transform-origin: 50% !important; -ms-transform-origin: 50% !important; transform-origin: 50% !important;}[data-role="map"] .cell .cell-item > b { display: block; width: 200px; height: 200px; position: absolute; left: -125px; bottom: -50px; background: url("__MEDIA_URL__/img/ui/512-robot.png") no-repeat 50% rgba(0,0,0,0.6); background-size: 110% auto; border-radius: 50%;}[data-role="map"] .cell .cell-item > b.robot { border-radius: 0; background-color: transparent;}[data-role="map"] .cell .cell-item.vacant > i,[data-role="map"] .cell .cell-item.vacant > b { display: none;}[data-role="map"] .cell[cell-type="cities"],[data-role="map"] .cell[cell-type="islandStatues"] { cursor: url("__MEDIA_URL__/img/ui/cursor-pointer.cur"), pointer;}[data-role="map"] .cell[cell-type="cities"] .cell-item { -webkit-transform: scale(0.8) !important; -ms-transform: scale(0.8) !important; transform: scale(0.8) !important; -webkit-transform-origin: 50% 30% !important; -ms-transform-origin: 50% 30% !important; transform-origin: 50% 30% !important;}[data-role="map"] .cell[cell-type="islandStatues"] .cell-item { margin-top: -20%;}.cell .label { width: 50%; position: absolute; bottom: 50px; left: 50%; -webkit-transform: translate(-46%, -100%) scale(2); -ms-transform: translate(-46%, -100%) scale(2); transform: translate(-46%, -100%) scale(2);}[data-role="map"] .cell[cell-type="cities"][city-own="true"] .label { -webkit-filter: hue-rotate(90deg); filter: hue-rotate(90deg);}[data-role="map"] .cell[cell-type="cities"]:hover .cell-item { -webkit-filter: drop-shadow(0px 0px 10px #ff631e); filter: drop-shadow(0px 0px 10px #ff631e);}[data-role="map"] .cell[cell-type="cities"][city-own="true"]:hover .cell-item { -webkit-filter: drop-shadow(0px 0px 10px #ff631e); filter: drop-shadow(0px 0px 10px #ff631e);}/*End of Game:Island*/ -------------------------------------------------------------------------------- /ui/css/game/world.css: -------------------------------------------------------------------------------- 1 | /*Game:World*/body { background: #f6edcb;}[data-role="map"] .cell { cursor: url("__MEDIA_URL__/img/ui/cursor-pointer.cur"), pointer; background-size: 100% 100%;}[data-role="map"] .cell > .items-holder > .statue,[data-role="map"] .cell > .items-holder > .slot { width: 64px; height: 64px; position: absolute; background-size: 100% !important; z-index: 3;}[data-role="map"].rotated .cell .statue,[data-role="map"].rotated .cell .label { -webkit-transform: rotate(-30deg) scale(2); -ms-transform: rotate(-30deg) scale(2); transform: rotate(-30deg) scale(2);}[data-role="map"] .cell .statue > i { display: inline-block; position: absolute; right: -50px; top: 15px; font-style: normal; font-size: 20px; font-weight: bold; min-width: 50px; text-align: center; z-index: 2; -webkit-transition: -webkit-transform 0.1s linear; transition: -webkit-transform 0.1s linear; -o-transition: transform 0.1s linear; transition: transform 0.1s linear; transition: transform 0.1s linear, -webkit-transform 0.1s linear;}[data-role="map"] .cell:hover .statue > i { -webkit-transform: scale(1.2); -ms-transform: scale(1.2); transform: scale(1.2);}.cell:hover, .cell[island-own="true"] { z-index: 10;}.cell .slot.vacant { background: url("__MEDIA_URL__/img/story/cities/common/512-vacant-above.png") no-repeat transparent;}.cell .label { width: 40%; position: absolute; -webkit-transform: translateX(-35%) scale(2); -ms-transform: translateX(-35%) scale(2); transform: translateX(-35%) scale(2); margin-top: 96px; z-index: 100;}[data-role="map"] .cell[island-own="true"] .label { -webkit-filter: hue-rotate(90deg); filter: hue-rotate(90deg);}[data-role="map"] .cell:hover { -webkit-filter: drop-shadow(0px 0px 10px #ff631e); filter: drop-shadow(0px 0px 10px #ff631e);}[data-role="map"] .cell[island-own="true"]:hover { -webkit-filter: drop-shadow(0px 0px 10px #ff631e); filter: drop-shadow(0px 0px 10px #ff631e);}/*End Of Game:World*/ -------------------------------------------------------------------------------- /ui/fonts/Lato-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/fonts/Lato-Bold.woff2 -------------------------------------------------------------------------------- /ui/fonts/Lato-BoldLatin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/fonts/Lato-BoldLatin.woff2 -------------------------------------------------------------------------------- /ui/fonts/Lato-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/fonts/Lato-Regular.woff2 -------------------------------------------------------------------------------- /ui/fonts/Lato-RegularLatin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/fonts/Lato-RegularLatin.woff2 -------------------------------------------------------------------------------- /ui/fonts/Oxanium-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/fonts/Oxanium-Bold.ttf -------------------------------------------------------------------------------- /ui/fonts/Oxanium-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/fonts/Oxanium-Light.ttf -------------------------------------------------------------------------------- /ui/fonts/Oxanium-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/fonts/Oxanium-Regular.ttf -------------------------------------------------------------------------------- /ui/help/firebase-rules.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | ".read": false, 4 | ".write": false, 5 | "chat": { 6 | "$message": { 7 | ".validate": "newData.hasChildren(['i', 'd', 'n', 't', 'u'])", 8 | "i": { 9 | ".validate": "newData.isNumber() && newData.val() > 0 && newData.val() <= 99999999" 10 | }, 11 | "d": { 12 | ".validate": "newData.isString() && newData.val().matches(/^[\\w\\.\\-:]{3,60}$/i)" 13 | }, 14 | "n": { 15 | ".validate": "newData.isString() && newData.val().length > 2 && newData.val().length <= 100" 16 | }, 17 | "t": { 18 | ".validate": "newData.isString() && newData.val().length > 0 && newData.val().length <= 500" 19 | }, 20 | "u": { 21 | ".validate": "newData.isString() && newData.val().length > 0" 22 | }, 23 | "$other": { 24 | ".validate": false 25 | } 26 | }, 27 | ".read": "auth != null", 28 | ".write": "auth != null" 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /ui/img/badge-error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/badge-error.gif -------------------------------------------------------------------------------- /ui/img/badge-success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/badge-success.gif -------------------------------------------------------------------------------- /ui/img/changelog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/changelog.png -------------------------------------------------------------------------------- /ui/img/data-tables/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/data-tables/sort_asc.png -------------------------------------------------------------------------------- /ui/img/data-tables/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/data-tables/sort_asc_disabled.png -------------------------------------------------------------------------------- /ui/img/data-tables/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/data-tables/sort_both.png -------------------------------------------------------------------------------- /ui/img/data-tables/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/data-tables/sort_desc.png -------------------------------------------------------------------------------- /ui/img/data-tables/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/data-tables/sort_desc_disabled.png -------------------------------------------------------------------------------- /ui/img/file-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/file-icons.png -------------------------------------------------------------------------------- /ui/img/header-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/header-banner.png -------------------------------------------------------------------------------- /ui/img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/icon.png -------------------------------------------------------------------------------- /ui/img/loading-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/loading-badge.png -------------------------------------------------------------------------------- /ui/img/signature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markjivko/rpg/43e04f448da7e916fb682ef51db3affd682417c1/ui/img/signature.png -------------------------------------------------------------------------------- /ui/js/game/common.js: -------------------------------------------------------------------------------- 1 | /* global stephino_rpg_tools, stephino_rpg_data */ 2 | // Common actions 3 | jQuery && jQuery(document).ready(function() { stephino_rpg_tools.pwa.init(); stephino_rpg_tools.console.init(); stephino_rpg_tools.chat.init(); stephino_rpg_tools.buttons.init(); stephino_rpg_tools.paypal.init(); stephino_rpg_tools.heartbeat.init();}); -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": {"name":"Slippery","version":1,"width":26,"height":15}, 3 | "2": {"name":"Leap of faith","version":1,"width":26,"height":25}, 4 | "3": {"name":"Gold rush","version":1,"width":52,"height":15}, 5 | "4": {"name":"Not there","version":1,"width":40,"height":56}, 6 | "5": {"name":"Basement","version":1,"width":26,"height":22}, 7 | "6": {"name":"The stairs","version":1,"width":26,"height":15}, 8 | "7": {"name":"Shallow well","version":1,"width":26,"height":50}, 9 | "8": {"name":"Flappy maze","version":1,"width":60,"height":15}, 10 | "9": {"name":"Hurry up","version":1,"width":90,"height":15}, 11 | "10": {"name":"Fear of heights","version":1,"width":26,"height":60}, 12 | "11": {"name":"Ricardo","version":1,"width":210,"height":15}, 13 | "12": {"name":"A-maze-ing","version":1,"width":41,"height":40}, 14 | "13": {"name":"Side quest","version":1,"width":26,"height":50}, 15 | "14": {"name":"Gold Mine","version":1,"width":65,"height":65}, 16 | "15": {"name":"Ladders","version":1,"width":26,"height":15} 17 | } -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/1.json: -------------------------------------------------------------------------------- 1 | ["1:116",19,"1:24",3,2,9,"1:25",5,"1:3",18,"1:3",18,"1:13","18:4",5,1,19,1,6,"1:11",18,"1:5",3,"2:3",17,"2:3",10,"1:11",8,"1:9",5,"1:25",5,20,"1:24",11,4,"1:17",6,"1:12",18,"1:12",5,"1:12",8,"1:6",3,"2:5",10,"1:19"] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/10.json: -------------------------------------------------------------------------------- 1 | ["1:87",8,"1:5",8,"1:20",8,"1:3",8,"1:22",8,1,8,"1:24",8,"1:117",19,"1:14",19,"1:143",19,"1:16",19,"1:142",19,"1:16",19,"1:169",19,"1:159",18,"1:24",3,2,4,"1:54",3,4,"1:20",18,"1:24",3,2,4,19,"1:197",19,"1:81",18,"1:125",8,"1:7",8,"1:18",8,1,1,20,1,1,8,"1:20",8,"1:3",8,"1:11"] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/11.json: -------------------------------------------------------------------------------- 1 | ["1:847",12,9,"1:85",18,"1:121",12,17,17,9,"1:81",3,2,2,4,"1:121",11,14,14,10,"1:178",12,9,"1:7",18,19,"1:33",18,"1:57",19,1,1,18,18,1,1,19,"1:22",18,"1:16",19,18,18,19,"1:56",12,14,13,"1:7",18,"1:34",8,"1:56",3,"2:8",4,"1:21",8,"1:10",3,2,4,"1:3",3,2,2,4,"1:55",12,10,1,5,"1:7",18,"1:181",19,18,"1:14",12,10,1,1,5,"1:7",18,"1:28",18,"1:4",18,1,18,"1:40",18,"1:12",18,"1:16",18,"1:6",18,"1:5",18,1,1,18,1,1,18,"1:23",6,1,1,6,"1:10",12,4,1,1,6,"1:12",3,2,2,4,"1:12",12,10,"1:3",5,"1:7",18,"1:28",8,"1:3",3,"2:3",4,"1:21",12,9,"1:9",12,9,"1:5",8,"1:11",3,2,4,"1:15",8,"1:5",3,4,"1:5",8,1,1,8,1,1,8,"1:5",8,"1:8",3,4,"1:6",12,10,1,1,11,9,"1:8",12,10,"1:3",11,9,"1:26",12,10,"1:4",5,"1:7",18,"1:5",20,"1:43",12,9,"1:7",15,13,"1:9",15,13,"1:76",12,10,"1:4",11,9,"1:6",12,10,"1:5",11,9,"1:5",12,9,"1:14",12,9,19,12,10,"1:5",5,"1:7",18,"1:40",12,9,"1:7",15,13,"1:7",15,13,"1:9",15,13,"1:75",12,10,"1:6",11,9,1,18,18,1,12,10,"1:7",11,9,"1:4",15,13,"1:14",15,17,2,10,"1:6",5,"1:7",6,19,1,1,12,"2:3",9,"1:4",3,"2:27",14,14,"2:7",14,14,"2:7",14,14,"2:9",14,14,"2:9",4,1,1,3,"2:13",4,"1:3",3,"2:44",10,"1:8",11,"2:4",10,"1:9",11,"2:4",14,14,"2:14",14,10,"1:8",11,"2:7",14,"2:3",10,"1:3",11,"2:3",4] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/12.json: -------------------------------------------------------------------------------- 1 | ["1:3",6,"1:24",6,"1:11",6,"1:3",5,"1:8",18,"1:8",18,"1:6",5,"1:5",18,"1:5",5,1,1,18,5,"1:7","18:3","1:6","18:3","1:5",5,"1:4","18:3","1:4",5,1,1,3,13,"1:5",12,"2:5",9,"1:3",12,"2:3",9,"1:4",5,18,1,1,12,"2:3",9,"1:3",5,"1:3",11,4,"1:3",3,10,"1:5",5,"1:3",5,"1:3",5,"1:4",5,"1:3",5,"1:3",5,"1:3",5,18,"1:14",5,1,1,3,13,1,18,1,5,"1:3",18,15,4,1,1,5,1,18,1,5,1,1,18,5,4,"1:14",5,"1:3",7,"1:3",5,"1:3",3,13,"1:3",5,"1:3",5,1,1,3,13,"1:3",12,"2:6",4,"1:3",18,5,18,"1:5",18,5,"1:4",5,"1:3",15,4,1,1,5,"1:3",5,1,1,18,5,"1:10",3,17,4,"1:5",3,13,18,"1:3",5,1,1,3,10,"1:3",5,18,1,1,5,1,1,3,13,"1:11",5,"1:7",15,4,"1:3",5,"1:7",15,4,1,1,5,"1:3",5,"1:11",5,"1:7",5,"1:4",5,19,"1:5",3,13,"1:3",5,18,1,1,5,"1:6",18,12,"2:3",14,"2:7",10,"1:3",18,15,"2:3",9,"1:3",5,1,1,18,5,4,1,1,5,18,1,1,6,1,1,3,13,"1:15",3,13,"1:3",5,"1:3",5,1,1,3,13,"1:3",15,4,1,1,5,"1:3",5,"1:16",5,1,18,1,15,4,1,1,5,"1:3",5,1,1,18,5,"1:3",5,1,18,1,5,1,18,1,19,"1:12",5,"1:3",5,"1:3",5,18,1,1,5,1,1,3,10,"1:3",15,"2:3",14,"2:3",16,"2:7",4,"1:3",18,5,"1:3",7,1,1,18,15,4,1,1,5,"1:6",3,13,"1:7",5,"1:11",3,17,4,"1:5",3,13,"1:3",5,18,"1:6",7,"1:7",5,"1:9",18,1,1,5,"1:7",5,1,1,18,5,4,"1:12",18,1,5,"1:12",5,"1:7",5,1,1,3,13,"1:3",12,4,"1:6",12,"2:3",10,"1:3",3,16,"2:7",10,1,1,18,6,"1:3",5,"1:3",5,1,1,18,5,"1:3",3,4,1,1,5,"1:8",5,"1:10",3,13,1,1,3,13,18,1,1,5,1,1,3,13,"1:7",5,"1:8",5,"1:11",5,1,18,1,15,4,1,1,5,"1:3",5,1,1,19,1,1,18,1,5,"1:8",5,"1:11",5,"1:3",5,"1:3",5,18,1,1,15,"2:7",13,"1:4",12,"2:3",13,"1:4",3,"2:6",17,"2:3",10,1,1,18,5,4,1,1,5,"1:7",5,"1:3",18,5,"1:3",15,4,"1:10",5,"1:6",3,13,"1:3",5,"1:7",5,"1:3",3,13,1,18,1,5,1,1,18,"1:8",5,"1:7",5,1,1,18,5,1,18,"1:5",5,"1:4",5,"1:3",5,"1:11",5,"1:7",5,3,2,2,14,2,2,9,"1:4",5,18,"1:3",5,"1:3",11,"2:3",16,2,2,4,"1:3",18,5,"1:3",12,"2:3",13,"1:6",11,4,"1:3",11,4,"1:3",11,4,"1:6",5,"1:6",3,13,"1:3",5,"1:3",5,1,18,"1:22",5,"1:7",5,1,1,3,13,1,1,18,5,"1:24",5,1,18,"1:5",5,"1:3",7,1,1,3,13,"1:3",12,"2:3",16,"2:12",9,18,1,1,11,"2:3",4,1,1,18,5,"1:7",5,"1:3",5,"1:3",5,1,1,18,1,18,1,18,1,18,"1:3",15,4,"1:9",3,17,4,"1:6",5,1,1,3,13,1,18,1,5,19,"18:9",1,1,5,"1:11",5,"1:3",3,4,1,1,5,"1:3",5,"1:3",5,1,1,18,1,18,1,18,1,18,"1:3",5,"1:5",18,"1:3",19,1,5,"1:7",5,"1:3",5,"1:3",11,"2:8",9,"1:3",11,"2:11",14,2,9,"1:4",18,5,8,1,1,11,4,"1:11",15,4,"1:16",11,4,"1:3",3,13,"1:16",5,"1:23",5,1,18,"1:5",19,"1:6",18,1,5,1,18,"1:3",19,"1:3",18,1,1,19,1,1,18,"1:6",18,15,3,"2:15",14,"2:19",4,20,1,3,10] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/13.json: -------------------------------------------------------------------------------- 1 | ["1:12",6,"1:25",5,"1:6",20,"1:13",18,"1:4",5,"1:19",3,4,"1:4",5,"1:3",18,1,1,18,"1:18",5,1,1,3,4,"1:13",18,"1:6",18,5,"1:16",3,4,"1:6",3,13,18,"1:24",15,4,"1:13",18,"1:4",18,"1:5",5,"1:13",3,4,"1:4",3,4,"1:4",5,1,1,19,18,"1:21",5,1,1,3,4,"1:20",18,5,"1:24",3,13,"1:6",18,"1:18",5,"1:5",3,4,"1:12",18,"1:5",5,"1:19",3,4,"1:4",5,"1:9",18,"1:15",5,"1:8",3,4,"1:15",5,"1:14",18,"1:10",5,"1:12",18,3,4,"1:10",5,"1:11",3,4,"1:12",5,"1:25",5,"1:9",18,"1:15",5,"1:8",3,4,"1:15",5,"1:25",5,"1:5",18,19,"1:18",5,"1:5",3,4,"1:18",5,"1:25",5,"1:3",18,"1:20",18,5,1,1,3,4,"1:20",3,13,"1:25",5,18,"1:24",15,4,"1:17",18,"1:6",5,"1:18",3,4,"1:5",5,1,1,18,"1:22",5,1,3,4,"1:22",5,"1:25",5,"1:5",18,"1:7",18,"1:11",5,"1:4",3,4,"1:7",3,4,"1:10",5,"1:25",5,"1:8",18,"1:16",5,"1:7",3,4,"1:16",5,"1:25",5,"1:11",18,"1:13",5,"1:10",3,4,"1:13",5,"1:24",18,5,18,"1:7",18,"1:15",3,14,4,"1:6",3,4,"1:35",18,"1:6",18,"1:5",18,"1:12",3,4,"1:4",3,2,4,"1:3",3,4,"1:7"] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/15.json: -------------------------------------------------------------------------------- 1 | ["1:192",18,"1:9",18,"1:15",3,4,"1:8",3,4,"1:4",18,18,"1:24",3,4,"1:5",18,19,"1:8",18,19,"1:5",18,19,"1:7",3,4,"1:8",3,4,"1:5",3,4,"1:26",19,20,18,1,1,18,19,"1:8",18,19,"1:5",18,19,1,1,3,2,4,1,1,3,4,"1:8",3,4,"1:5",3,4,1,1] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/2.json: -------------------------------------------------------------------------------- 1 | ["1:36",6,18,18,"1:23",11,2,2,9,18,"1:24",11,2,9,18,"1:6",20,"1:17",11,2,9,18,18,1,1,3,2,4,"1:18",11,2,2,9,"1:25",5,18,18,"1:23",11,2,4,"1:39","18:3",1,"18:3","1:8",12,"2:12",4,1,3,"2:10",10,"1:166",19,"1:5",19,"1:19",6,18,1,20,1,18,6,"1:19",11,"2:5",10,"1:139"] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/3.json: -------------------------------------------------------------------------------- 1 | ["1:412",19,20,"1:57","18:42","1:7",3,2,4,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,1,12,9,"1:11",11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,1,11,10,"1:163"] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/4.json: -------------------------------------------------------------------------------- 1 | ["1:75",18,"1:79",19,"1:15",6,"1:27",18,"1:10",18,5,18,"1:12",18,12,9,18,"1:21",3,17,4,"1:10",3,2,2,14,14,2,2,4,"1:8",6,"1:11",5,"1:27",5,"1:11",5,"1:27",15,3,2,2,9,"1:3",3,"2:3",14,"2:3",16,"2:4",4,"1:12",3,"2:5",10,"1:3",5,"1:11",5,"1:27",5,"1:11",5,"1:27",5,"1:11",5,"1:27",5,"1:7",6,"1:3",5,"1:27",5,"1:7",5,"1:3",5,"1:27",5,"1:6",3,13,"1:3",5,"1:27",5,19,18,1,1,18,19,1,5,"1:3",5,"1:27",11,"2:7",10,"1:3",5,"1:39",5,"1:36",18,19,1,5,"1:36",3,2,2,13,"1:39",5,"1:36","18:3",5,"1:36",3,2,2,13,"1:39",5,"1:26",12,"2:4",4,"1:7",5,"1:26",5,"1:3",18,1,18,18,"1:4",19,5,"1:26",5,"1:3",8,1,3,4,"1:4",3,13,"1:26",5,"1:12",5,1,1,6,"1:23",5,"1:12",5,1,1,5,"1:23",7,1,8,1,8,1,8,1,8,1,8,1,3,10,1,1,5,"1:39",5,"1:39",5,"1:26",12,"2:3",16,9,"1:7",5,"1:26",5,"1:3",11,10,"1:7",5,"1:21",3,9,"18:3",5,"1:12",5,"1:22",11,"2:3",10,"1:12",5,"1:30","18:3","1:6",5,"1:30",3,16,4,1,8,1,8,1,3,10,"1:31",5,"1:39",5,"1:36",3,2,16,10,"1:30",18,"1:7",5,"1:31",6,"1:7",5,"1:30",3,17,4,"1:6",5,"1:31",7,"1:7",5,"1:35",3,2,2,16,10,"1:38",5,"1:39",5,"1:34",3,"2:3",16,10,"1:38",5,"1:39",5,"1:39",5,"1:5",6,"1:4",20,"1:4",6,"1:16","19:7",5,"1:5",5,1,18,1,1,19,1,1,18,1,5,"1:16",3,"2:6",10,"1:5",11,16,2,16,2,16,2,16,2,16,10,"1:30",7,1,7,1,7,1,7,1,7,"1:17"] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/5.json: -------------------------------------------------------------------------------- 1 | ["1:103",18,"1:3",12,"2:16",9,"1:3",12,2,3,2,16,10,"1:16",5,"1:3",5,"1:3",5,"1:4",18,1,18,1,18,"1:6",18,19,5,"1:3",5,1,1,18,5,1,1,12,16,"2:5",9,"1:5",3,2,17,4,1,1,5,1,1,3,13,19,1,11,13,"1:5",5,"1:7",5,"1:3",5,"1:3",11,9,1,1,11,9,"1:4",5,19,18,"1:5",5,"1:3",5,"1:4",5,18,1,1,11,9,"1:3",15,2,4,"1:5",5,"1:3",5,1,18,1,1,11,9,"1:3",11,9,1,1,5,"1:7",5,1,18,19,5,1,8,"1:3",11,9,18,1,1,11,9,1,5,"1:6",19,5,1,3,2,10,"1:6",11,9,"1:3",11,16,13,"1:5",3,2,13,"1:7",6,18,1,1,11,9,18,1,1,11,13,19,"1:6",5,"1:7",11,9,"1:3",11,9,"1:3",11,9,"1:6",5,"1:5",19,1,1,11,9,18,1,1,11,9,18,1,1,11,9,"1:5",5,"1:3",18,1,6,"1:3",11,9,"1:3",11,4,"1:3",5,"1:4",18,5,"1:3",6,1,11,9,18,1,1,11,9,18,"1:6",5,"1:3",3,2,14,"2:3",10,1,1,11,9,"1:3",11,9,"1:6",5,"1:13",11,9,1,20,1,5,"1:4",19,18,5,18,19,"1:12",11,"2:3",14,"2:6",14,"2:9",4,19] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/6.json: -------------------------------------------------------------------------------- 1 | ["1:43",18,"1:24",3,4,"1:21",18,"1:24",3,4,"1:21",18,"1:6",19,18,"1:16",3,4,"1:6",3,4,"1:13",18,"1:6",19,18,"1:16",3,4,"1:6",3,4,"1:13",18,"1:6",19,18,"1:16",3,4,"1:6",3,4,1,20,"1:118"] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/7.json: -------------------------------------------------------------------------------- 1 | ["1:78",18,"1:25",12,9,"1:16",18,"1:7",11,10,"1:15",3,9,"1:21",18,"1:3",11,9,"1:19",3,9,"1:4",7,"1:16",18,"1:3",11,4,"1:19",3,9,"1:20",19,18,"1:3",11,4,"1:19",3,9,"1:25",11,9,"1:15",18,"1:9",7,"1:14",3,9,"1:25",7,"1:43",18,19,"1:23",3,16,4,"1:24",7,"1:68",18,"1:25",3,16,4,"1:24",7,"1:61",19,18,"1:23",3,16,4,"1:24",7,"1:92",18,"1:25",3,16,4,"1:24",7,"1:36",18,"1:23",3,16,4,"1:24",5,"1:8",6,"1:3",6,"1:3",6,"1:3",6,"1:3",12,10,1,1,6,"1:3",6,1,7,"1:3",11,4,1,3,10,"1:3",11,4,1,3,10,"1:3",11,4,1,3,10,"1:53",19,19,1,1,19,19,1,1,19,19,1,1,19,19,1,1,19,19,1,1,19,19,1,1,19,19,"1:52",8,1,12,2,16,2,9,1,8,1,8,1,8,20,8,1,8,1,8,1,12,2,16,2,9,"1:3",7,1,7,1,7,"1:6",19,"1:6",7,1,7,1,7,"1:11",18,"1:5",18,"1:18",3,9,"1:5",12,4,"1:8",19,18,1,1,18,"1:4",18,5,"1:5",5,18,"1:4",18,1,1,18,3,4,1,3,2,4,1,3,2,2,10,1,3,2,4,1,11,2,2,4,1,3,2,4,1,8] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/8.json: -------------------------------------------------------------------------------- 1 | ["1:8",12,"2:3",16,"2:5",4,"1:3",6,"1:5",6,"1:3",6,"1:35",5,"1:3",5,"1:5",19,"1:3",7,"1:5",7,"1:3",7,"1:35",7,"1:3",5,"1:58",18,5,"1:39",18,"1:18",3,13,1,18,"1:3",18,"1:3",18,"1:5",8,"1:22",3,4,"1:15",18,"1:3",5,1,3,9,1,1,6,"1:3",6,"1:9",18,"1:14",18,19,"1:19",6,"1:3",5,1,1,7,1,1,5,"1:3",5,19,"1:4",8,"1:3",6,"1:14",3,4,"1:16",18,1,1,5,"1:3",5,"1:4",19,5,"1:3",11,2,4,"1:3",18,1,1,19,5,"1:11",18,"1:19",3,4,1,1,5,"1:3",5,"1:4",3,17,2,4,"1:7",3,"2:3",10,"1:10",3,4,"1:18",18,"1:4",5,"1:3",11,4,1,18,1,1,5,"1:20",18,19,"1:16",19,1,19,1,1,3,4,"1:4",5,"1:6",6,1,1,5,"1:7",3,2,4,"1:10",3,4,"1:20",18,"1:6",5,"1:6",5,1,1,7,"1:3",6,"1:9",18,"1:3",18,"1:23",3,4,"1:6",5,"1:3",18,1,3,13,"1:5",3,17,4,1,3,9,1,6,"1:3",6,1,1,3,4,"1:31",5,"1:3",6,19,1,5,1,1,18,"1:3",5,"1:3",5,18,5,1,1,3,17,4,"1:24",20,"1:9",11,4,1,3,14,4,1,11,"2:3",4,1,1,7,"1:3",11,2,10,"1:3",7,"1:24",3,2,4] -------------------------------------------------------------------------------- /ui/js/ptf/ptf-list/9.json: -------------------------------------------------------------------------------- 1 | ["1:627",18,"1:5",18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,"1:8",18,1,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,"1:12",3,16,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,19,"1:4",19,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,1,3,4,19,"1:7",20,1,1,7,"1:538"] -------------------------------------------------------------------------------- /ui/js/wordpress/wp-game.js: -------------------------------------------------------------------------------- 1 | /** 2 | * JS Options 3 | * 4 | * @title Game Integration 5 | * @desc Prepare the PWA manifest and other common actions 6 | * @copyright (c) 2021, Stephino 7 | * @author Mark Jivko 8 | * @package stephino-rpg 9 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 10 | */ 11 | /* global stephino_rpg_tools, stephino_rpg_data */ 12 | // Stephino RPG: Admin - Play 13 | jQuery && jQuery(document).ready(function() { stephino_rpg_tools && stephino_rpg_tools.pwa.init();}); -------------------------------------------------------------------------------- /ui/tpl/console/console-help.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | 15 | 16 | 17 | Console Commands

18 | $methodInfo): 20 | list($cliMethodName, $cliMethodDetailsArray) = $methodInfo; 21 | ?> 22 | ``: 23 |
24 | 25 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-city-buildings.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | Buildings: 15 | 16 | 35 | 36 | not configured 37 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-city-entities.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-city-resources.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-island-cities.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-ptf.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $ptfData array */ 15 | ?> 16 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-stages.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $item Stephino_Rpg_Config_Trait_Requirement */ 15 | ?> 16 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-user-cities.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-user-convoys.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | -------------------------------------------------------------------------------- /ui/tpl/console/console-list-user-resources.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/building/building-upgrade-cancel.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $buildingConfig Stephino_Rpg_Config_Building */ 15 | ?> 16 |
17 |
18 |
19 |
20 | getRefundPercent() == 0):?> 21 |
22 |
23 | 24 |
25 |
26 | 27 |
28 |
29 | ' . $buildingConfig->getRefundPercent() . '%' 33 | ); 34 | ?> 35 |
36 |
37 | getRefundPercent(); 41 | 42 | // Show the table 43 | require Stephino_Rpg_Renderer_Ajax_Dialog::dialogTemplatePath( 44 | Stephino_Rpg_Renderer_Ajax_Dialog::TEMPLATE_COMMON_COSTS 45 | ); 46 | ?> 47 | 48 |
49 |
50 | 55 |
56 |
57 | 62 |
63 |
64 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/building/building-upgrade.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $canAfford boolean */ 15 | /* @var $requirementsMet boolean */ 16 | /* @var $buildingConfig Stephino_Rpg_Config_Building */ 17 | $buildingLevel = is_array($buildingData) ? intval($buildingData[Stephino_Rpg_Db_Table_Buildings::COL_BUILDING_LEVEL]) : 0; 18 | ?> 19 |
20 | ' . ($buildingLevel + 1) . '' 27 | ); 28 | $costDiscount = Stephino_Rpg_Renderer_Ajax_Action::getDiscount($buildingConfig); 29 | $costTimeContraction = Stephino_Rpg_Renderer_Ajax_Action::getTimeContraction($buildingConfig); 30 | require Stephino_Rpg_Renderer_Ajax_Dialog::dialogTemplatePath( 31 | Stephino_Rpg_Renderer_Ajax_Dialog::TEMPLATE_COMMON_COSTS 32 | ); 33 | ?> 34 | 39 |
40 |
41 | 46 |
47 | 48 |
49 | 56 |
57 | 58 |
59 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/city/city-move-capital.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | ?> 15 | ' . $cityInfo[Stephino_Rpg_Db_Table_Cities::COL_CITY_LEVEL] . '' 20 | ); 21 | require Stephino_Rpg_Renderer_Ajax_Dialog::dialogTemplatePath( 22 | Stephino_Rpg_Renderer_Ajax_Dialog::TEMPLATE_COMMON_COSTS 23 | ); 24 | ?> 25 |
26 |
28 | 33 |
34 |
35 | 42 |
43 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/common/common-entity-military.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $entityCount int */ 15 | /* @var $entityConfig Stephino_Rpg_Config_Unit|Stephino_Rpg_Config_Ship */ 16 | /* @var $entityDisbandMode boolean */ 17 | if (!isset($entityDisbandMode)) { 18 | $entityDisbandMode = false; 19 | } 20 | /* @var $entityLayoutGarrison boolean */ 21 | if (!isset($entityLayoutGarrison)) { 22 | $entityLayoutGarrison = false; 23 | } 24 | // Prepare the military capabiliies 25 | $entityAttackPoints = $entityConfig->getCivilian() 26 | ? 0 27 | : $entityCount * ($entityConfig->getDamage() * $entityConfig->getAmmo()) * ($entityDisbandMode ? -1 : 1); 28 | $entityDefensePoints = $entityConfig->getCivilian() 29 | ? 0 30 | : $entityCount * ($entityConfig->getArmour() * $entityConfig->getAgility()) * ($entityDisbandMode ? -1 : 1); 31 | ?> 32 |
33 |
34 |
37 |
38 | 39 | core()->getMilitaryAttackName(true);?>: 42 | 43 |
44 |
45 |
46 |
49 |
50 | 51 | core()->getMilitaryDefenseName(true);?>: 54 | 55 |
56 |
57 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/common/common-entity-prepare.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $entityPrepareCapability string */ 15 | if (!isset($entityPrepareCapability)) { 16 | $entityPrepareCapability = ''; 17 | } 18 | 19 | /* @var $entityPrepareSingular string */ 20 | if (!isset($entityPrepareSingular)) { 21 | $entityPrepareSingular = ''; 22 | } 23 | 24 | /* @var $entityPreparePlural string */ 25 | if (!isset($entityPreparePlural)) { 26 | $entityPreparePlural = ''; 27 | } 28 | 29 | /* @var $entityPrepareNotAllowed string */ 30 | if (!isset($entityPrepareNotAllowed)) { 31 | $entityPrepareNotAllowed = ''; 32 | } 33 | 34 | /* @var $entityConfig Stephino_Rpg_Config_Unit|Stephino_Rpg_Config_Ship */ 35 | $entityConfigs = Stephino_Rpg_Utils_Config::getEntitiesByCapability($entityPrepareCapability); 36 | ?> 37 |
38 | 39 |
40 |
41 | 42 |
43 |
44 |
45 | 55 |
56 |
62 | 65 | getName(true);?> 66 | 67 |
68 |
69 | 70 |
71 | 72 | 73 | 74 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/common/common-pagination.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $pagination Stephino_Rpg_Utils_Pagination */ 15 | if (isset($pagination) 16 | && $pagination instanceof Stephino_Rpg_Utils_Pagination 17 | && $pagination->getPagesTotal() > 1): 18 | ?> 19 | 42 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/entity/entity-dequeue.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $queueData array */ 15 | /* @var $entityConfig Stephino_Rpg_Config_Unit|Stephino_Rpg_Config_Ship */ 16 | ?> 17 |
18 |
19 |
20 |
21 |
22 | 25 | getName(true);?> 26 | 27 |
28 |
29 |
30 |
31 | 40 |
41 | 0):?> 42 |
43 | 53 |
54 | 60 | 61 | 62 | 63 |
64 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/help/fragment/help-fragment-abundance.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $configObject Stephino_Rpg_Config_Trait_XResourceAbundance */ 15 | ?> 16 | getResourceExtra1Abundant() || $configObject->getResourceExtra2Abundant()):?> 17 |
18 |
19 | getResourceExtra1Abundant()):?> 20 |
21 | 22 |
23 | 24 | core()->getResourceExtra1Name(true);?> 25 | 100%' 29 | ); 30 | ?> 31 | 32 |
33 |
34 | 35 | getResourceExtra2Abundant()):?> 36 |
37 | 38 |
39 | 40 | core()->getResourceExtra2Name(true);?> 41 | 100%' 45 | ); 46 | ?> 47 | 48 |
49 |
50 | 51 |
52 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/help/fragment/help-fragment-description.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 |
15 |
16 |
17 | 25 |
isPro() && is_file(Stephino_Rpg_Utils_Themes::getActive()->getFilePath('img/story/' . $itemType . '/' . $configObject->getId() . '/512.mp4'))): ?> 28 | data-effect="video" 29 | 30 | data-effect="background" 31 | 32 | data-effect-args=",getId();?>"> 33 |
34 | 35 |
36 |
37 |
38 | getDescription())):?> 39 | getDescription());?> 40 | 41 | 42 | 43 |
44 |
45 |
46 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/help/fragment/help-fragment-discounts.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $configObject Stephino_Rpg_Config_Trait_Discount */ 15 | $validDiscountsBuildings = $configObject->getEnablesDiscountBuildings() && is_array($configObject->getDiscountBuildings()); 16 | $validDiscountsUnits = $configObject->getEnablesDiscountUnits() && is_array($configObject->getDiscountUnits()); 17 | $validDiscountsShips = $configObject->getEnablesDiscountShips() && is_array($configObject->getDiscountShips()); 18 | if ($validDiscountsBuildings || $validDiscountsUnits || $validDiscountsShips): ?> 19 |
20 |
21 |
22 |

23 |
    24 | getDiscountBuildings() as $buildingConfig):?> 25 |
  • 26 | 29 | getName(true); ?> 30 | : -getDiscountBuildingsPercent();?>% 31 |
  • 32 | 33 | getDiscountUnits() as $unitConfig):?> 34 |
  • 35 | 38 | getName(true); ?> 39 | : -getDiscountUnitsPercent();?>% 40 |
  • 41 | 42 | getDiscountShips() as $shipConfig):?> 43 |
  • 44 | 47 | getName(true); ?> 48 | : -getDiscountShipsPercent();?>% 49 |
  • 50 | 51 |
52 |
53 |
54 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/help/fragment/help-fragment-production.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $configObject Stephino_Rpg_Config_Trait_Modifier */ 15 | 16 | // Initialize the production data 17 | if (!isset($productionData)) { 18 | $productionData = Stephino_Rpg_Renderer_Ajax_Action::getProductionData($configObject); 19 | } 20 | ?> 21 | 22 |
23 |
24 |
25 | $prodInfo): 27 | list($prodInfoName, $polynomialBase, $prodInfoKey) = $prodInfo; 28 | ?> 29 |
30 |
31 | 34 | getModifierPolynomial(); 37 | 38 | // Load the fragment 39 | require Stephino_Rpg_Renderer_Ajax_Dialog_Help::dialogTemplatePath( 40 | Stephino_Rpg_Renderer_Ajax_Dialog_Help::TEMPLATE_FRAGMENT_POLY 41 | ); 42 | ?>/h 43 | 44 | 45 |
46 | 47 |
48 |
49 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/help/fragment/help-fragment-requirements.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $configObject Stephino_Rpg_Config_Trait_Requirement */ 15 | ?> 16 | getRequiredBuilding() || null !== $configObject->getRequiredResearchField()): ?> 17 |
18 |
19 | getRequiredBuilding()):?> 20 | 21 | 24 | getRequiredBuilding()->getName(true);?> 25 | 26 | getRequiredBuildingLevel();?> 27 | 28 | 29 | getRequiredResearchField()):?> 30 | 31 | 34 | getRequiredResearchField()->getName(true);?> 35 | 36 | getRequiredResearchField()->getLevelsEnabled()):?> 37 | level getRequiredResearchFieldLevel();?> 38 | 39 | 40 | 41 |
42 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/help/help-content-islandStatues.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $configObject Stephino_Rpg_Config_IslandStatue */ 15 | $costData = Stephino_Rpg_Renderer_Ajax_Action::getCostData($configObject); 16 | $productionData = Stephino_Rpg_Renderer_Ajax_Action::getProductionData($configObject); 17 | ?> 18 |
19 |
20 |
21 | core()->getConfigIslandStatuesName(true);?> › getName(true);?> 22 |
23 |
24 | 25 |
26 |
27 | 28 | 29 | 37 | 38 |
39 |
40 | 41 |
42 | 47 | 48 |
49 |
50 | 60 |
61 | 62 | 67 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/help/help-content-researchAreas.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $configObject Stephino_Rpg_Config_ResearchArea */ 15 | ?> 16 |
17 |
18 |
19 | core()->getConfigResearchAreasName(true);?> › getName(true);?> 20 |
21 |
22 |
23 | 28 |
29 |
30 | 50 |
51 | -------------------------------------------------------------------------------- /ui/tpl/dialogs/island/island-colonize-prepare.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 |
15 |
16 |
17 | 18 |
19 | 20 | 26 | 27 |
28 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/island/island-upgrade.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $islandConfig Stephino_Rpg_Config_Island */ 15 | /* @var $islandStatueConfig Stephino_Rpg_Config_IslandStatue */ 16 | ?> 17 | ' . ($islandData[Stephino_Rpg_Db_Table_Islands::COL_ISLAND_STATUE_LEVEL] + 1) . '' 21 | ); 22 | require Stephino_Rpg_Renderer_Ajax_Dialog::dialogTemplatePath( 23 | Stephino_Rpg_Renderer_Ajax_Dialog::TEMPLATE_COMMON_COSTS 24 | ); 25 | ?> 26 |
27 |
28 | 33 |
34 |
35 | 42 |
43 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/messages/messages-read.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $messageData array */ 15 | ?> 16 |
17 |

18 | 19 | 💬 20 | 21 | tableUsers()->getById($messageData[Stephino_Rpg_Db_Table_Messages::COL_MESSAGE_FROM], true))): ?> 22 | 25 | 26 | 27 | 28 | 29 | : 30 | 31 | 32 | 33 |

34 |
35 |
36 | 41 |
42 | setSafeMode() 45 | ->setUrlsLinked() 46 | ->setLinksRemoved() 47 | ->setImagesRemoved() 48 | ->parse($messageData[Stephino_Rpg_Db_Table_Messages::COL_MESSAGE_CONTENT]); 49 | ?> 50 |
51 | 52 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/sentry/sentry-customize.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $userData array */ 15 | ?> 16 |
17 |
18 | 19 |
20 | 23 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/settings/settings-about.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $changeLogFlag boolean True when the dialog is triggered on game update */ 15 | /* @var $about string[] Array of Credits, Changelog */ 16 | ?> 17 |
18 | 19 |
20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 |
28 |
29 |

30 | 31 |
32 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/settings/settings-announcement.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $paragraphs string */ 15 | ?> 16 |
17 |
18 |
19 | 20 |
21 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/settings/settings-delete-account.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | ?> 15 |
16 |
17 | 21 |
22 |
23 | 30 |
31 |
32 |
33 |
34 | 35 |
36 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/settings/settings-language.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | ?> 15 |
16 |
17 |
18 | 19 | $langValue):?> 20 | 26 | 27 |
28 |
-------------------------------------------------------------------------------- /ui/tpl/dialogs/user/user-arena-play.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | /* @var $ptfId int*/ 15 | ?> 16 |
17 | 18 | 28 |
29 |
30 | 31 |
-------------------------------------------------------------------------------- /ui/tpl/notif/common/invalid-data.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 |
15 |
16 | 17 |
18 |
-------------------------------------------------------------------------------- /ui/tpl/notif/notif-premium-modifier.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 1)): 15 | /* @var $premiumModifierConfigId int */ 16 | list($premiumModifierConfigId) = $notifData; 17 | 18 | $premiumModifierConfig = Stephino_Rpg_Config::get() 19 | ->premiumModifiers() 20 | ->getById($premiumModifierConfigId); 21 | 22 | $premiumModifierName = null !== $premiumModifierConfig 23 | ? $premiumModifierConfig->getName() 24 | : __('Unknown premium modifier', 'stephino-rpg'); 25 | 26 | $premiumModifierDuration = null !== $premiumModifierConfig 27 | ? $premiumModifierConfig->getDuration() 28 | : 0; 29 | ?> 30 |
31 | ' 34 | . esc_html($premiumModifierName) 35 | . ''; 36 | echo sprintf(esc_html__('You have just activated the %s premium modifier', 'stephino-rpg'), $i18nPremiumName); 37 | ?> 38 |
39 | ' 42 | . '
' 43 | . '' 44 | . '' 45 | . $premiumModifierDuration . ' ' . esc_html(_n('hour', 'hours', $premiumModifierDuration, 'stephino-rpg')) 46 | . '' 47 | . '' 48 | . '
'; 49 | echo sprintf(esc_html__('The effects of the premium modifier will last for %s', 'stephino-rpg'), $i18nPremiumEffect); 50 | ?> 51 | 52 | -------------------------------------------------------------------------------- /ui/tpl/notif/notif-premium-package.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 1)): 15 | /* @var $premiumPackageConfigId int */ 16 | list($premiumPackageConfigId) = $notifData; 17 | 18 | $premiumPackageConfig = Stephino_Rpg_Config::get() 19 | ->premiumPackages() 20 | ->getById($premiumPackageConfigId); 21 | 22 | $premiumPackageName = null !== $premiumPackageConfig 23 | ? $premiumPackageConfig->getName() 24 | : __('Unknown premium package', 'stephino-rpg'); 25 | 26 | $premiumPackageGems = null !== $premiumPackageConfig 27 | ? $premiumPackageConfig->getGem() 28 | : 0; 29 | ?> 30 |
31 | ' 35 | . esc_html($premiumPackageName) 36 | . '' 37 | ); 38 | ?> 39 |
40 | ' 44 | . '
' 45 | . '' . number_format($premiumPackageGems) . ' ' . Stephino_Rpg_Config::get()->core()->getResourceGemName(true) . '' 46 | . '
' 47 | ); 48 | ?> 49 | 50 | -------------------------------------------------------------------------------- /ui/tpl/notif/notif-ptf-author-reward.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 5)): 15 | /* @var $ptfId int*/ 16 | /* @var $ptfName int*/ 17 | /* @var $playerId int */ 18 | /* @var $playerName string */ 19 | /* @var $rewardGems int */ 20 | list($ptfId, $ptfName, $playerId, $playerName, $rewardGems) = $notifData; 21 | ?> 22 |
23 |
24 |
25 | ' . esc_html($playerName) . '', 29 | '' 30 | . esc_html($ptfName) 31 | . '' 32 | ); 33 | ?> 34 |
35 |
36 | 37 |
38 | 39 | core()->getResourceGemName(true);?> 40 | 41 |
42 |
43 |
44 |
45 | -------------------------------------------------------------------------------- /ui/tpl/notif/notif-tutorial-rewards.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 1)): 15 | /* @var $tutorialConfigId int */ 16 | list($tutorialConfigId) = $notifData; 17 | 18 | $tutorialConfig = Stephino_Rpg_Config::get() 19 | ->tutorials() 20 | ->getById($tutorialConfigId); 21 | 22 | $tutorialName = null !== $tutorialConfig 23 | ? $tutorialConfig->getName(true) 24 | : esc_html__('Unknown', 'stephino-rpg'); 25 | 26 | $resourcesList = null !== $tutorialConfig 27 | ? array( 28 | Stephino_Rpg_Db_Table_Users::COL_USER_RESOURCE_GOLD => $tutorialConfig->getTutorialCheckPointRewardGold(), 29 | Stephino_Rpg_Db_Table_Users::COL_USER_RESOURCE_RESEARCH => $tutorialConfig->getTutorialCheckPointRewardResearch(), 30 | Stephino_Rpg_Db_Table_Users::COL_USER_RESOURCE_GEM => $tutorialConfig->getTutorialCheckPointRewardGem(), 31 | Stephino_Rpg_Db_Table_Cities::COL_CITY_RESOURCE_ALPHA => $tutorialConfig->getTutorialCheckPointRewardAlpha(), 32 | Stephino_Rpg_Db_Table_Cities::COL_CITY_RESOURCE_BETA => $tutorialConfig->getTutorialCheckPointRewardBeta(), 33 | Stephino_Rpg_Db_Table_Cities::COL_CITY_RESOURCE_GAMMA => $tutorialConfig->getTutorialCheckPointRewardGamma(), 34 | Stephino_Rpg_Db_Table_Cities::COL_CITY_RESOURCE_EXTRA_1 => $tutorialConfig->getTutorialCheckPointRewardExtra1(), 35 | Stephino_Rpg_Db_Table_Cities::COL_CITY_RESOURCE_EXTRA_2 => $tutorialConfig->getTutorialCheckPointRewardExtra2(), 36 | ) 37 | : array(); 38 | ?> 39 |
40 |
41 | 42 | ' . intval($tutorialConfigId) . ' (' . $tutorialName . ')' 46 | ); 47 | ?> 48 |
49 | list($resName, $resValue, $resAjaxKey)): 51 | if ($resValue > 0): 52 | ?> 53 |
54 |
55 |
56 | 57 | 58 | 59 | 60 |
61 |
62 | 63 |
64 | -------------------------------------------------------------------------------- /ui/tpl/notif/notif-user-game-master.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 1)): 15 | /* @var $gameMaster boolean */ 16 | list($gameMaster) = $notifData; 17 | ?> 18 |
19 |
20 |
21 | 28 |
29 |
30 |
31 | -------------------------------------------------------------------------------- /ui/tpl/notif/timelapse/notif-diplomacy-colony.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 1)): 15 | /* @var $itemDataCityInfo int[]|null */ 16 | list($itemDataCityInfo) = $notifData; 17 | ?> 18 |
19 | cities()->getById($newCityConfigId); 26 | $newCityConfigName = null !== $newCityConfig 27 | ? $newCityConfig->getName(true) 28 | : esc_html__('Unknown', 'stephino-rpg'); 29 | ?> 30 | 33 | modelCities()->getName($newCityId);?> 34 | 35 | ' . $newCityConfigName . ')' 38 | );?> 39 | 40 | 41 | 42 |
43 | -------------------------------------------------------------------------------- /ui/tpl/notif/timelapse/notif-diplomacy-discovery.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 1)): 15 | /* @var $researchFieldConfigId int */ 16 | list($researchFieldConfigId) = $notifData; 17 | $researchFieldConfig = Stephino_Rpg_Config::get() 18 | ->researchFields() 19 | ->getById( 20 | $researchFieldConfigId 21 | ); 22 | ?> 23 |
24 |
25 |
26 | getStory()) 28 | ? esc_html($researchFieldConfig->getStory()) 29 | : esc_html__('Our records were mysteriously destroyed', 'stephino-rpg'); 30 | ?> 31 |
32 |
33 | -------------------------------------------------------------------------------- /ui/tpl/notif/timelapse/notif-diplomacy-premium.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 3)): 15 | /* @var $premiumModifierConfigId int */ 16 | /* @var $premiumDuration int */ 17 | /* @var $premiumQuantity int */ 18 | list($premiumModifierConfigId, $premiumDuration, $premiumQuantity) = $notifData; 19 | $premiumModifierConfig = Stephino_Rpg_Config::get()->premiumModifiers()->getById( 20 | $premiumModifierConfigId 21 | ); 22 | ?> 23 |
24 | ' 28 | . '
' 29 | . '' 30 | . $expireDays . ' ' . esc_html(_n('day', 'days', $expireDays, 'stephino-rpg')) 31 | . '' 32 | . '
'; 33 | 34 | // Show the message 35 | echo ( 36 | null !== $premiumModifierConfig 37 | ? sprintf( 38 | esc_html__('Premium modifier %s has expired after %s', 'stephino-rpg'), 39 | '' 40 | . $premiumModifierConfig->getName(true) 41 | . ' ×' . abs((int) $premiumQuantity) . '', 42 | $premiumModiferExpire 43 | ) 44 | : sprintf( 45 | esc_html__('Unknown premium modifier %s has expired after %s', 'stephino-rpg'), 46 | '×'. abs((int) $premiumQuantity) . '', 47 | $premiumModiferExpire 48 | ) 49 | ); 50 | ?> 51 |
52 | 53 | -------------------------------------------------------------------------------- /ui/tpl/notif/timelapse/notif-economy-building.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 3)): 15 | /* @var $buildingConfigId int */ 16 | /* @var $buildingLevel int */ 17 | /* @var $buildingCityId int */ 18 | list($buildingConfigId, $buildingLevel, $buildingCityId) = $notifData; 19 | 20 | $buildingConfig = Stephino_Rpg_Config::get() 21 | ->buildings() 22 | ->getById($buildingConfigId); 23 | 24 | $buildingConfigName = null !== $buildingConfig 25 | ? $buildingConfig->getName(true) 26 | : esc_html__('Unknown', 'stephino-rpg'); 27 | ?> 28 |
29 |
30 |
31 | 34 | 35 | 36 |
37 |
38 |
39 | ' . $buildingConfigName . '', 45 | '' 46 | . Stephino_Rpg_Db::get()->modelCities()->getName($buildingCityId) 47 | . '' 48 | ) 49 | : sprintf( 50 | esc_html__('%s upgraded to level %s in %s', 'stephino-rpg'), 51 | '' . $buildingConfigName . '', 52 | abs((int) $buildingLevel), 53 | '' 54 | . Stephino_Rpg_Db::get()->modelCities()->getName($buildingCityId) 55 | . '' 56 | ) 57 | ); 58 | ?> 59 |
60 | -------------------------------------------------------------------------------- /ui/tpl/notif/timelapse/notif-economy-entity.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 3)): 15 | /* @var $entityConfigId int */ 16 | /* @var $entityType string */ 17 | /* @var $entityCityId int */ 18 | list($entityConfigId, $entityType, $entityCityId) = $notifData; 19 | 20 | // Get the entity configuration 21 | $entityConfig = Stephino_Rpg_Db_Table_Queues::ITEM_TYPE_UNIT == $entityType 22 | ? Stephino_Rpg_Config::get()->units()->getById($entityConfigId) 23 | : Stephino_Rpg_Config::get()->ships()->getById($entityConfigId); 24 | 25 | // Get the entity key 26 | $entityKey = Stephino_Rpg_Db_Table_Queues::ITEM_TYPE_UNIT == $entityType 27 | ? Stephino_Rpg_Config_Units::KEY 28 | : Stephino_Rpg_Config_Ships::KEY; 29 | 30 | // Get the entity name 31 | $entityName = null !== $entityConfig 32 | ? $entityConfig->getName(true) 33 | : esc_html__('Unknown', 'stephino-rpg'); 34 | ?> 35 |
36 |
37 |
38 | 41 | 42 | 43 |
44 |
45 |
46 | ' . $entityName . ': ' . sprintf( 48 | Stephino_Rpg_Db_Table_Queues::ITEM_TYPE_UNIT == $entityType 49 | ? esc_html__('recruitment finished in %s', 'stephino-rpg') 50 | : esc_html__('construction finished in %s', 'stephino-rpg'), 51 | '' 52 | . Stephino_Rpg_Db::get()->modelCities()->getName($entityCityId) 53 | . '' 54 | ); 55 | ?> 56 |
57 | -------------------------------------------------------------------------------- /ui/tpl/notif/timelapse/notif-military-return.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 3)): 15 | /* @var $payloadArray array|null */ 16 | /* @var $fromCityId int */ 17 | /* @var $toCityId int */ 18 | list($payloadArray, $fromCityId, $toCityId) = $notifData; 19 | ?> 20 |
21 | ' 25 | . Stephino_Rpg_Db::get()->modelCities()->getName($fromCityId) 26 | . '', 27 | '' 28 | . Stephino_Rpg_Db::get()->modelCities()->getName($toCityId) 29 | . '' 30 | ); 31 | ?> 32 |
33 | 44 | 48 |
49 |
50 |
51 | 57 | 58 | -------------------------------------------------------------------------------- /ui/tpl/notif/timelapse/notif-research-done.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | 14 | if (Stephino_Rpg_Db_Model_Messages::isValidNotifData($notifData, 2)): 15 | /* @var $researchFieldConfigId int */ 16 | /* @var $researchFieldLevel int */ 17 | list($researchFieldConfigId, $researchFieldLevel) = $notifData; 18 | 19 | $researchFieldConfig = Stephino_Rpg_Config::get() 20 | ->researchFields() 21 | ->getById($researchFieldConfigId); 22 | ?> 23 | 28 | getResearchArea()):?> 29 |
30 |
31 |
32 | 35 | getName(true);?> 36 | 37 |
38 |
39 | 40 |
41 | ' 43 | . $researchFieldConfig->getName(true) 44 | . ''; 45 | $i18nResearchLevel = '' . abs((int) $researchFieldLevel) . ''; 46 | echo $researchFieldConfig->getLevelsEnabled() 47 | ? sprintf(esc_html__('Research %s level %s complete', 'stephino-rpg'), $i18nResearchName, $i18nResearchLevel) 48 | : sprintf(esc_html__('Research %s complete', 'stephino-rpg'), $i18nResearchName); 49 | ?> 50 |
51 | 52 |
53 | 54 |
55 | 56 | -------------------------------------------------------------------------------- /ui/tpl/wordpress/wp-notice.php: -------------------------------------------------------------------------------- 1 | 9 | * @package stephino-rpg 10 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 11 | */ 12 | !defined('STEPHINO_RPG_ROOT') && exit(); 13 | ?> 14 | 40 |
41 |

42 | ' . Stephino_Rpg::PLUGIN_NAME . ' Pro', 46 | '' . Stephino_Rpg::PLUGIN_VERSION_PRO . '+' 47 | ); 48 | ?> 49 | 50 |

51 | 54 |
-------------------------------------------------------------------------------- /uninstall.php: -------------------------------------------------------------------------------- 1 | 11 | * @package stephino-rpg 12 | * @license GPL v3+, https://gnu.org/licenses/gpl-3.0.txt 13 | */ 14 | if (!defined('ABSPATH') || !defined('WP_UNINSTALL_PLUGIN')) { 15 | exit(); 16 | } 17 | 18 | // Define the root 19 | !defined('STEPHINO_RPG_ROOT') && define('STEPHINO_RPG_ROOT', dirname(__FILE__)); 20 | 21 | // Prepare the autoloader 22 | require_once STEPHINO_RPG_ROOT . '/lib/Stephino/Rpg/Autoloader.php'; 23 | Stephino_Rpg_Autoloader::get(); 24 | 25 | // Remove all options (except for the PRO-level config) 26 | Stephino_Rpg_Cache_Game::get()->purge(); 27 | 28 | // Remove the PRO-level configuration 29 | Stephino_Rpg::get()->isPro() && Stephino_Rpg_Pro::get()->purge(); 30 | 31 | // Drop all tables 32 | Stephino_Rpg_Db::get()->purge(); 33 | 34 | // Remove all themes 35 | Stephino_Rpg_Utils_Themes::purge(); 36 | 37 | /*EOF*/ --------------------------------------------------------------------------------