A dataset defining game rules and wordings for Data Dealer online game.
Copyright (c) 2011-2014, Cuteacute Media OG
dd_rules
is released under
Creative Commons Attribution-ShareAlike 3.0, Österreich (CC-BY-SA 3.0)
Controls the contents of the initial game state.
{
"Database": { // Database root element
"children": [], // unused
"instance_data": {} // unused
},
"Imperium": {
"children": [DATABASE_PERP], // Creates a Database element in Empire view
"instance_data": {} // unused
}
}
{
"full_type": "DatabasePerp:database001", // Don't change this!
"instance_data": {
"x": 1024, // default position on Empire view
"y": 800 // default position on Empire view
}
}
{
"karmalizers": [KARMALIZER /*, KARMALIZER, … */], // all available karmalizers
"karmalauters": [KARMALIZER /*, KARMALIZER, …*/], // all available karmalauters
"levels": [LEVEL /*, LEVEL, … */], // level information
"missions": [MISSION /*, MISSION, … */], // all available missions
"perps": { // all basic game elements
DATABASE_PERP,
AGENT_PERP /*, AGENT_PERP, … */,
CITY_PERP /*, CITY_PERP, … */,
CLIENT_PERP /*, CLIENT_PERP, … */,
CONTACT_PERP /*, CONTACT_PERP, … */,
PROJECT_PERP /*, PROJECT_PERP, … */,
PUSHER_PERP /*, PUSHER_PERP, … */
},
"powerups": {POWERUP /*, … */}, // all available Project Powerups
"tokens": {TOKEN /*, … */}, // all available Database Tokens
"version": 1 // obsolete/unused, do not touch!
}
{
ap_inc_interval: 1000, // ap increment interval in milliseconds
ap_inc_value: 1, // ap increment value every ap_inc_interval
ap_max: 10000, // ap upper cap for level
number: 2, // level number (redundant with list position
xp_max: 1999, // levelup to number+1 on xp==xp_max+1
xp_min: 1000 // lower xp boundary for level
}
{
"description": "This is a description.", // Element description
"label": "Sweepstakes", // Element label
"title": "Sweepstakes", // Element title (used in popups)
"subtitle": "Some subtitle", // Element subtitle (used in popups)
"perp_sprite": SPRITE, // Element sprite, used on game map, optional
"popup_sprite": SPRITE, // Element sprite, used in popups, optional
"slot_sprite": SPRITE, // Element sprite, used in slot representation, optional
"price": 100, // Cash costs to buy
"required_level": 1, // Level required to obtain item
"story": { // optional
text: "Wohoo, you've bought a mangificent perp!",
trigger: "buy",
}
}
"perp_sprite:" { // Or "popup_sprite" for popup sprites
"frameMap": {
"normal": { // a frameMap can contain several 'views'
"height": 100, // height of the image
"width": 100, // width of the image
"x": 400, // x-offset on spritesheet
"y": 0 // y-offset on spritesheet
}
},
"frameSrc": "sprites-perp.png" // spritesheet filename
}
A token reference enriched with metadata. Impact of provided values may differ depending on context.
{
"amount": 100, // weight factor, 0..100
"full_type": "TokenPerp:token001", // game_type:gestalt
"gestalt": "token001", // gestalt id of TOKEN
"is_required": false, // optional
"position": 1 // used for sorting
}
karmalauters
describe buyable one-shot image improvments; they should have karma_points>0 and price>0.
karmalizers
describe 'bad image' incidents. they should have negative karma_points
and price==0.
karmalizers
and karmalauters
provide a popup_sprite
with a single normal
view and no perp_sprite
.
{
"game_type": "Karmalauter", // ...or "Karmalizer"
"type_data": {
"gestalt": "karma001", // globally unique gestalt identifier
"karma_points": 11 // image modificator on buy/trigger
} + COMMON_TYPEDATA
}
Represents a "special" game element - the Database element on Empire viewmap.
"database001": { // gestalt for DATABASE_PERP should ALWAYS be 'database001'
"game_type": "DatabasePerp",
"type_data": {
"description": "I iz in ur databaze, collecting ur profilez!",
"label": "Database",
"title": "Database"
}
}
Represents Agent game elements. AGENT_PERP provides a perp_sprite
and a popup_sprite
.
"agent001": { // globally unique gestalt id
"game_type": "AgentPerp",
"type_data": {
"provided_perps": ["contact001" /*, … */], /* list of gestalt ids of contacts available through
this agent */
} + COMMON_TYPEDATA
}
Represents City game elements. CITY_PERP provides a perp_sprite
and a popup_sprite
.
"city001": { // globally unique gestalt id
"game_type": "CityPerp",
"type_data": {
"profiles_max": 740000000, // increases global profiles cap by profile_max
"profileset_size": 1757353, // size of the bundled bonus profileset
// gestalt ids of items available in this city
"provided_perps": ["agent001", "pusher002", "proxy003" /*, … */],
// tokens included in bundled bonus profileset
"tokens": [TOKEN_REF /*, … */]
} + COMMON_TYPEDATA
}
Represents Client game elements. CLIENT_PERP provides a perp_sprite
and a popup_sprite
.
Represents Client game elements. CLIENT_PERP provides a perp_sprite
and a popup_sprite
.
"client001": { // globally unique gestalt id
"game_type": "ClientPerp",
"type_data": {
"charge_time": 10000, // charge cycle duration, in ms
"consumed_tokens": [TOKEN_REF /*, … */], // tokens used in client output calculations
"income_base": 1000, // minimum client cash output
"income_factor": 100, // client cash output growth factor
"provided_tokens": ["token001" /* , … */], // gestalt ids of tokens used in client output calculations
// gestalt ids of items which are required for client to be purchased
"required_providers": ["contact001", "project002", 'supertoken003' /*, …*/],
"requirements_text": "Descriptive text about which requirements need to be fulfilled to unlock this client."
} + COMMON_TYPEDATA
}
Represents Contact game elements. CONTACT_PERP provides a perp_sprite
and a popup_sprite
.
"contact001": { // globally unique gestalt id
"game_type": "ContactPerp",
"type_data": {
"charge_cost": 350, // cash costs of a charge cycle
"charge_time": 6000, // charge cycle duration, in ms
"collect_amount": 4000, // base output amount, in profiles
"collect_risk": 35, // image penalty on collect
"tokens": [TOKEN_REF /*, … */] // tokens included in output profileset
} + COMMON_TYPEDATA
}
Represents Proxy game elements. PROXY_PERP provides a perp_sprite
and a popup_sprite
.
"proxy001": { // globally unique gestalt id
"game_type": "ProxyPerp",
"provided_perps": ["project001" /*, … */], // gestalt ids of projects provided by proxy
"type_data": {
"max_slots": 3 // maximum projects per proxy
} + COMMON_TYPEDATA
}
Represents Pusher game elements. PUSHER_PERP provides a perp_sprite
and a popup_sprite
.
"pusher001": { // globally unique gestalt id
"game_type": "PusherPerp",
"type_data": {
provided_clients: ["client003" /*, … */], // gestalt ids of clients provided by pusher
} + COMMON_TYPEDATA
}
Represents Project game elements. PROJECT_PERP provides a perp_sprite
and a popup_sprite
.
"project001": { // globally unique gestalt id
"game_type": "ProjectPerp",
"type_data": {
"charge_cost": 350, // basic charge cycle cash costs
"charge_time": 6000, // basic charge cycle duration in ms
"collect_amount": 4000, // basic collect amount in profiles
"collect_risk": 35, // image penalty on collect
"upgrade_slots": 9, // default slots for upgrade powerups
"ad_slots": 3, // default slots for ad powerups
"teammember_slots": 3, // default slots for teammember powerups
"max_upgrade_slots": 22, // maximum slots for upgrade powerups
"max_ad_slots": 15, // maximum slots for ad powerups
"max_teammember_slots": 17, // maximum slots for teammember powerups
"provided_ads": [POWERUP_REF /*, … */], // available ad powerups
"provided_teammembers": [POWERUP_REF /*, … */], // available teammembers powerups
"provided_upgrades": [POWERUP_REF /*, … */],// available upgrade powerups
"rename_ads_tab": false, // true if the “Ads” tab should display “Servers” (unused?)
"slot_cost": 1000, // powerup slot cash costs
"slot_cost_modifier": 1, // undocumented
"tokens": [TOKEN_REF /*, … */], // tokens in basic collect output profileset
} + COMMON_TYPEDATA
}
Represents Project Powerups. Gestalt ids should be prefixed 'ad' for Ads, 'upgrade' for upgrades and 'teammember' for teammembers.
POWERUP provides a popup_sprite
and a slot_sprite
.
"ad001": { // globally unique gestalt id
"game_type": "AdPowerup", // ...or "TeamMemberPowerup", "UpgradePowerup"
"type_data": {
"tokens": [TOKEN_REF /*, … */] // Extra tokens provided by powerup
} + COMMON_TYPEDATA
}
Represents a project-powerup relations. Defines, which effect a powerup has on project behaviour.
{
"charge_cost_modifier": 40, // modifies charge_cost of project by...
"collect_amount_modifier": 11000, // modifies collect_amount of project by...
"collect_risk_modifier": 0, // modifies collect_risk of project by...
"full_type": "AdPowerup:ad001", // game_type:gestalt
"gestalt": "ad001", // gestalt id of powerup
"notification": false, // true if notification should be displayed when item is unlocked
"price": 800, // cash amount required to buy powerup for a given project
"required_level": 10 // level required to buy powerup for a given project
}
Represents a 'database token'. TOKEN_PERP provides a perp_sprite
and a popup_sprite
.
"token001": { // globally unique gestalt id
"game_type": "TokenPerp",
"type_data": {
"charge_time": 10000, // charge cycle duration in ms, optional
"contained_tokens": [TOKEN_REF /*, … */],// optional, tokens which can be used to improve give tokens' amount
"findings_text": "You get one or more IP addresses of %s people",
"is_buyable": false, // can be purchased
"is_supertoken": false, // unused?
"knowledge_text": "You know one or more IP addresses of %s people",
"origin_full_type": "ContactPerp:contact001", // optional, for special origin-tokens only
"origin_gestalt": "contact001", // optional, for special origin-tokens only
"requirements_text": "Descriptive text about the requirements for unlocking this item."
} + COMMON_TYPEDATA
}