Downloads containing academy_statics.asc

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: Anniversary Bash 21 Levels Jazz2Online Multiple N/A Download file

File preview

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

enum SPELL {SPELL_MAGIC_ARROW, SPELL_STONE_SKIN, SPELL_BLESS, SPELL_BLOOD_LUST, SPELL_DISPEL, SPELL_SLOW, SPELL_CURE,
			SPELL_VISIONS, 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_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_MINE,
			PACKET_SYNC_DEMO_MODE, PACKET_FREE_SPELL };

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_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 = 80;

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 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 TREE_BASE_COST = 10;
const int TREE_EXTRA_COST = 5;
const int VERTICAL_FLIP_EVENT_ID = 149;
const int WALL_OF_FIRE_CASTING_RANGE = 128;
const int WALL_OF_FIRE_WIDTH = 2;
const int WIZARD_SPELL_COST_PER_TIER = 20;

const int ELEVATOR_TILE_X = 144;
const int ELEVATOR_TILE_Y = 48;
const int GEM_MINE_TOP = 82;
const int GEM_MINE_BOTTOM = 84;
const int GEM_MINE_LEFT = 47;
const int GEM_MINE_RIGHT = 49;
const int MAGIC_WELL_TOP = 72;
const int MAGIC_WELL_LEFT = 60;
const int MAGIC_WELL_RIGHT = 69;
const int TREE_OF_KNOWLEDGE_EYES_X = 2578;
const int TREE_OF_KNOWLEDGE_EYES_Y = 2752;
const int WIZARD_X = 4704;
const int WIZARD_Y = 320;

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 skills learned yet! Visit the tree of knowledge to learn some (asks for " + TREE_BASE_COST + " purple gems).";
const string EMPTY_SPELLBOOK = "YOUR SPELLBOOK\nIS EMPTY! Well how did that happen? Pls report...";
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 string SPELLBOOK_TIP = "Go get some scrolls\nby killing other players!";
const string TREE_OF_KNOWLEDGE_EXHAUSTED = "I hope my teachings have helped you.";
const string TREE_OF_KNOWLEDGE_QUOTE = "Ahh, an adventurer!\nI will be happy to teach you\na little of what I have learned\nover the ages for\na mere 10 (purple) gems.\n(Just bury it around my roots.)";
const string TREE_OF_KNOWLEDGE_TIP = "Press fire to accept\nor down to exit.";
const string WIZARD_EXHAUSTED = "You already know that which I would teach you. I can help you no further.";
const string WIZARD_TEXT = "Psst. I can teach you the wisdom of more powerful spells if you wish. I just ask for some silver coins in return.";
const string WIZARD_TEXT_RETURN = "I'm glad to see you again. Are you ready for your next lesson?";
const string WIZARD_TIP = "Press fire to pay \nand learn spell.";

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: ||If you wish to learn higher tier spells, visit the wizard at the top of the eastern tower. You learn the spells progressively by learning a random tier 4 spell for each time you pay coins to him. Once you have learned all tier 4 spells, you may learn tier 5 spells, etc. The wizard asks for a fee in coins, the amount depending on the tier of the spell, starting from 20.",
	"||||Hint: ||You can visit the tree of knowledge to learn additional skills that benefit you permanently. The tree wants " + TREE_BASE_COST + " purple gems as a reward for the first lesson. Every subsequent lesson will cost " + TREE_EXTRA_COST + " purple gems more, up to a total of 5 lessons."
};

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)
};