Downloads containing academy_statics.asc

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Academy Superjazz Battle N/A Download file

File preview

enum BOX {BOX_INFO, BOX_SKILLS, BOX_SPELL_BOOK, BOX_KEY_MENU };

enum SPELL {SPELL_MAGIC_ARROW, SPELL_STONE_SKIN, SPELL_BLESS, SPELL_BLOOD_LUST, SPELL_DISPEL, SPELL_SLOW,
			SPELL_CURE, SPELL_DISRUPTING_RAY, SPELL_WEAKNESS, SPELL_ICE_BOLT,
			SPELL_DEATH_RIPPLE, SPELL_PRECISION, SPELL_WALL_OF_FIRE, SPELL_FORGETFULNESS, SPELL_FROST_RING,
			SPELL_FIREBALL, SPELL_FRENZY, SPELL_MAGIC_MIRROR, SPELL_CHAIN_LIGHTNING, SPELL_ARMAGEDDON,
			SPELL_IMPLOSION, SPELL_UNDO, SPELL_NONE };

enum SKILL {SKILL_MAX_MANA, SKILL_MANA_REGEN, SKILL_SPELL_DAMAGE, SKILL_SPELL_DURATION, SKILL_MAGIC_RESIST };

enum PACKET_TYPE {PACKET_EFFECT, PACKET_MASS_EFFECT, PACKET_CHANNELING_STARTED, PACKET_CHANNELING_STOPPED,
			PACKET_PLAYER_DEAD, PACKET_WALL_OF_FIRE, PACKET_CHAIN_LIGHTNING_SERVER, PACKET_CHAIN_LIGHTNING_CLIENT,
			PACKET_AOE, PACKET_CAPTURE_GEM_MINE, PACKET_SKILL_DAMAGE, PACKET_SKILL_DURATION, PACKET_REQ_SYNC_DATA,
			PACKET_SYNC_EFFECTS, PACKET_SYNC_SKILLS, PACKET_SYNC_WALLS_OF_FIRE, PACKET_SYNC_GEM_MINES,
			PACKET_SYNC_DEMO_MODE, PACKET_SKILL_LEARNED, PACKET_SPELL_LEARNED,
			PACKET_MAGIC_MIRROR_ANIMATION };

const array<uint8> FUR_BLESS = {80, 80, 80, 80};
const array<uint8> FUR_DISRUPTING_RAY = {10, 10, 10, 10};
const array<uint8> FUR_FORGETFULNESS = {105, 105, 105, 105};
const array<uint8> FUR_FRENZY = {24, 24, 24, 24};
const array<uint8> FUR_MAGIC_MIRROR = {255, 255, 255, 255};
const array<uint8> FUR_PRECISION = {162, 162, 162, 162};
const array<uint8> FUR_SLOW = {20, 20, 20, 20};
const array<uint8> FUR_STONE_SKIN = {65, 65, 65, 65};
const array<uint8> FUR_WEAKNESS = {90, 90, 90, 90};

const float TARGET_X_SCALE = 2;
const float TARGET_Y_SCALE = 3;

const float THRESHOLD_X_SPEED = 8.0;
const float SLOW_SPEED = 4.0;

const int BULLET_MAGIC_ARROW = 105;
const int BULLET_ICE_BOLT = 115;
const int BULLET_FIREBALL = 125;

const int CHANNELING_BAR_BODY_COLOR = 15;
const int CHANNELING_BAR_BORDER_COLOR = 1;
const int CHANNELING_BAR_ORIGIN_LEFT = 2;
const int CHANNELING_BAR_ORIGIN_TOP = 4;
const int CHANNELING_BAR_HEIGHT = 10;
const int CHANNELING_COLOR = 37;
const int RESOURCE_BAR_HEIGHT = 16;
const int RESOURCE_BAR_WIDTH = 120;

const int AREA_OF_EFFECT_COLOR = 24;
const int AREA_OF_EFFECT_TARGET_COLOR = 40;

const int EFFECT_INITIAL_HEIGHT = 32;
const int HEADER_MARGIN_TOP = 16;
const int KEY_MENU_TAB_LEFT = 4;
const int HINT_BOX_HEIGHT = 400;
const int INFO_BOX_HEIGHT = 176;
const int INFO_BOX_TEXT_MARGIN = 80;
const int INFO_SCROLL_SPEED = 7;
const int ROW_SPACING = 16;
const int SELECTED_SPELL_COLOR = 24;
const int SPELL_BOXES_INIT_Y = 176;
const int SPELL_CAST_HINT_DEFAULT_WIDTH = 200;
const int SPELLBOOK_BODY_COLOR = 65;
const int SPELLBOOK_BORDER_COLOR = 1;
const int SPELLBOOK_MARGIN_RIGHT = 12;
const int SPELLBOOK_ORIGIN_TOP = 4;
const int TEXT_MARGIN_LEFT = 5;
const int TEXT_MARGIN_TOP = 48;
const int TEXT_BOX_BODY_COLOR = 98;
const int TEXT_BOX_BORDER_COLOR = 100;

const int BULLET_CHECK_MAX_DISTANCE = 64;
const int SECOND = 70;
const int TILE = 32;

const int BULLET_POINTER_MAX_DISTANCE = 10;
const int CHAIN_LIGHTNING_DEFAULT_DURATION = 35;
const int CHAIN_LIGHTNING_TARGET_SCALE = 7;
const int CHAT_RELEASE_DELAY = 2;
const int COOLDOWN = 350;
const int DEFAULT_MANA_REGEN_RATE = 2;
const int DEFAULT_MAX_MANA = 100;
const int HOTKEY_CHAT = 84;
const int NUMPAD_BUFFER_TIME = 70;
const int MAX_ACTIVE_WALLS_OF_FIRE = 5;
const int SECONDARY_SKILL_BASE_COST = 10;
const int SECONDARY_SKILL_EXTRA_COST = 5;
const int SHORT_GAME_THRESHOLD = 10;
const int SPELL_COST_TIER_3 = 15;
const int SPELL_COST_TIER_4 = 20;
const int SPELL_COST_TIER_5 = 30;
const int STARTING_MANA = 10;
const int VERTICAL_FLIP_EVENT_ID = 149;
const int WALL_OF_FIRE_CASTING_RANGE = 128;
const int WALL_OF_FIRE_WIDTH = 2;

const int ELEVATOR_TILE_X = 144;
const int ELEVATOR_TILE_X_DUEL = 69;
const int ELEVATOR_TILE_Y = 48;
const int ELEVATOR_TILE_Y_DUEL = 48;
const int GEM_MINE_EAST_TOP = 85;
const int GEM_MINE_EAST_BOTTOM = 87;
const int GEM_MINE_EAST_LEFT = 80;
const int GEM_MINE_EAST_RIGHT = 82;
const int GEM_MINE_WEST_TOP = 82;
const int GEM_MINE_WEST_BOTTOM = 84;
const int GEM_MINE_WEST_LEFT = 47;
const int GEM_MINE_WEST_RIGHT = 49;
const int MAGIC_WELL_TOP = 72;
const int MAGIC_WELL_LEFT = 60;
const int MAGIC_WELL_RIGHT = 69;

const int8 WALL_OF_FIRE_MAX_HEIGHT = 10;

const uint LOWEST_LEARNABLE_TIER = 4;
const uint LOWEST_TIER = 1;
const uint HIGHEST_STARTING_TIER = 3;
const uint HIGHEST_TIER = 5;

const uint8 spriteParamUncastable = 0;

const string ACADEMY_INFO_TEXT = "Welcome to Academy young magician! Academy is the home of the wizards, where magic reigns. In academy all magicians may cast spells that they have learned, either on themselves or their enemies. To cast spells, a sufficient amount of mana is also required, which regenerates over time. Good luck!";
const string CANCEL = "C - Close";
const string EMPTY_SKILLS = "You don't have any secondary skills learned yet! Collect purple gems to learn secondary skills (" + SECONDARY_SKILL_BASE_COST + " purple gems for the first one).";
const string EMPTY_SPELLBOOK = "YOUR SPELLBOOK\nIS EMPTY! Well how did that happen? Pls report...";
const string GEM_MINE_NAME_EAST = "Eastern";
const string GEM_MINE_NAME_WEST = "Western";
const string HOTKEY_IN_USE = "That key is already\nreserved by another hotkey!";
const string HOTKEY_FILENAME = "xlmacademy_hotkeys.asdat";
const string MAXED = "MAXED";
const string OPEN_SPELLBOOK = "C - Spellbook";
const string SKILLS_TIP = "Skills are passive abilities that are active on you at all times after you have learned them.";

const SPRITE::Mode spriteModeUncastable = SPRITE::SINGLEHUE;

const array<string> infoBoxHints = {
	"||||Hint: ||You cast spells based on the spells you have learned so far. When you successfully cast a spell, its mana cost is spent. If your spell cast affects no one, the mana cost will not be spent and you may try again later.",
	"||||Hint: ||Collect coins to learn higher tier spells. You learn the spells progressively by learning a tier 4 spell for each time you collect enough coins (amount depending on the spell tier, starting from 20). Once you have learned all tier 4 spells, you may learn tier 5 spells, etc.",
	"||||Hint: ||Collect purple gems to learn secondary skills. You learn secondary skills by learning a random secondary skill each time you collect enough purple gems, starting from " + SECONDARY_SKILL_BASE_COST + ". Every subsequent skill will cost " + SECONDARY_SKILL_EXTRA_COST + " purple gems more, up to a total of 5 skills."
};

const array<Skill@> skills = {
	Skill(SKILL_MAX_MANA, "Advanced Intelligence", "||||+100 ||maximum mana"),
	Skill(SKILL_MANA_REGEN, "Advanced Mysticism", "||||100% ||faster mana regeneration"),
	Skill(SKILL_SPELL_DAMAGE, "Advanced Sorcery", "||||+1 ||spell damage"),
	Skill(SKILL_SPELL_DURATION, "Advanced Magic Endurance", "||||+10 ||seconds spell duration"),
	Skill(SKILL_MAGIC_RESIST, "Advanced Magic Resistance", "||||-1 || damage taken from spells")
};

const array<VisualGem@> visualGems = {
	VisualGem(44.5, 83.2),
	VisualGem(45, 83.3),
	VisualGem(45.6, 83.8),
	VisualGem(46.3, 84.4),
	VisualGem(47, 84),
	VisualGem(48, 84.2),
	VisualGem(48.6, 84.3),
	VisualGem(50, 84.1),
	VisualGem(51, 83.3),
	VisualGem(51.5, 83.1),
	VisualGem(78, 86.2),
	VisualGem(78.7, 86.6),
	VisualGem(79.4, 87),
	VisualGem(80, 87.2),
	VisualGem(80.8, 87.2),
	VisualGem(81.8, 87.3),
	VisualGem(82.3, 87.2),
	VisualGem(83.4, 87.3)
};