webnovel

Programmable Magic

Our main character, Reo van Dijck, tries to survive in a world where magic-spells are stored in game-like-cartridges. Only a few lucky ones can use them though. These chosen ones are venerated and worshipped like celebrities, unbelievable riches lie only a single dungeon-exploration away for them, they are called Machia. What will happen to our protagonist when he awakens as a Machia and discovers that he can actually program these magic-cartridges?... The Earth also changed drastically since the dungeons appeared, how could it not? These unknown, giant towers suddenly started spewing out hordes of fiends and monstrosities. Only The Machia were able to defend against these attacks on humanity. Countries were destroyed, safe-havens were build and then yet again destroyed. Eventually humanity adapted, like it always does. The economy was rebuild and centered around these new towers, these dungeons, the treasures they hold outweigh their dangers. Life is relatively safe again, for most at least… Read about Reo’s exploits, an immigrant from the Netherlands, as he tries to honor his dead parents and… find love? Establish a Guild?! Live the Ideal Harem life?!! BECOME PIRATE KING?!!! Okay maybe not that last one, but Reo will definitely leave his mark behind on this world full of mystery. This story features romance, comradery, an interesting power system and a post-apocalyptic world with amusing characters, what more do you want?! No seriously, I’m always open to constructive feedback. This story also displays my interpretation of a magic-coding-language (based on JAVA). Although knowledge about coding helps, you can also enjoy the story without it :).

Niku20 · Kỳ huyễn
Không đủ số lượng người đọc
54 Chs

Fireball 2.0

After Mr. Ito's class I rush back to my dorm, luckily Sara isn't home yet so I have some peace and quiet to work on my magic.

My idea is to program a smaller, faster fireball, hopefully the smaller size will result in a reduced mana-cost.

I guess I'll just modify the size and speed of the fireball-code I got from Lance…

I type the new code into the unknown yellow cartridge and hit save…

--------------

-ERROR-

Syntax error

--------------

Dammit… ah I see, I forgot to add a semicolon at the end. This reminds me of my old mobile-game coding days…

After fixing the syntax error, I hit save again and get this pop up:

-----------------------------

-Statistics-

Mana Price: 41 Mana/Use

Explosion Efficiency: 36%

Save

Edit

-----------------------------

What's this efficiency stat? Well let's just 'trial and error' a bunch I guess.

I changed the speed and size back to the original code I got from Lance, the Explosion Efficiency is now 100% and the Mana Price went back up to 100 Mana/Use… If my guess is correct, this 'Explosion Efficiency' measures the amount of potential energy from the fireball that's actually converted into the heat and kinetic energy of the explosion it creates when it comes into contact with something.

Or in normal people speech: a higher efficiency means a bigger boom.

It appears that a smaller fireball can't convert a lot of potential energy into the explosion which would make it a lot less powerful… Looks like the mana count is based on a combination of speed, size and power.

Wouldn't it be possible to alter the size of the fireball when it hits something in order to create a bigger explosion?

Alright, let's program a smaller faster fireball that'll expand when it hits a target, this should increase the 'Explosion Efficiency' since the fireball is big when it explodes. But It should also consume less mana since it still has a small volume when I fire it.

I tried adding another modifier at the end of my code to expand the fireball, but I got an error, this time a 'Modifier overflow' error. Looks like I can only add two modifiers to my magic right now.

This means that I can't apply the burn effect from the original fireball though, since I need an open modifier spot, but maybe by removing the burn effect I can lower the total mana cost even more…

After a lot of testing and syntax errors I finally got some statistics I liked:

------------------------------

-Statistics-

Mana Price: 50 Mana/Use

Explosion Efficiency: 100%

Save

Edit

-----------------------------

It should have a fair bit more power than a regular fireball and it's also a lot faster, however, it doesn't have a burn effect like a regular fireball would have. That did make it a lot cheaper though.

I hit the Save option and I get another window telling me to name my new code.

"What about… Explosion!"

I enter the name 'Explosion' and hit enter.

[Yellow] Explosion: See author note for code

The cartridge starts to glow and sizzle but stops after a while, I insert the cartridge and get the prompt:

------------------------------------------

-Yellow Revealed Cartridge: Explosion-

Store

Eject

Analyze

------------------------------------------

Nice! This could work! I can actually become a powerful Machia like this, fuck gift-cartridges, fuck mana-count, I'll just do this my way!

Let's start with winning the dual tomorrow, I'm curious about which lackey Kaori will send my way though. I hope someone from wood [I] or [II].

I can only hope to one-shot my opponent with explosion, they shouldn't see it coming since the projectile is only visible on impact. Now that I think about it, I really created something superior to a regular fireball. Not only is it faster, it's also near undetectable and more powerful.

Or well… it should be at least… I'm confident in my coding abilities, but I couldn't actually test the magic itself out. It also looks like I can't reprogram an already revealed cartridge, this is totally a nightmare for any debugger…

Also, I don't think I'll get a lot of time to practice my explosion magic before the match...

*SMACK*

I hear the front door swing open, presumably Sara returned home.

*KNOCK* *KNOCK*

"I know you're in there pervert, let's eat together, I bought too much sushi."

What a shock, is she finally opening up to me? L-Lets not make any bold assumptions, it's Sara we're talking about after all…

"Sure, give me like 5 minutes!"

import Magic_Class.Projectile;

import User;

public class Fireball extends ManaActivity{

@Override

protected void onActivation() {

boolean active = true;

while(active) {

if (User.Brain.Thought_detection == "Shoot") {

private Projectile fireball = new Projectile;

// fireball initiation

fireball.shape = "SPHERE";

fireball.volume = 0.0000001; // in m³

fireball.velocity = 180; // in m/s = Kinetic energy

fireball.acceleration = 0; // in m/s²

fireball.power = 900; // in KiloJoule = Potential energy

fireball.element = "FIRE";

fireball.starting_point = User.limbs.hand.palm;

fireball.trajectory = "Y = V0y*t - 1/2*g*t²";

// shoot the actual fireball

fireball.launch();

private boolean fired = true;

long start = System.currentTimeMillis();

long end = start + 5*1000;

while(fired && System.currentTimeMillis() < end){

if(CollisionDetected(fireball)){

fired = false;

ExpandProjectile(fireball);

}

}

fireball.detonate; //unleashes explosive force of the fireball

}

if (User.Brain.Thought_detection == "Deactivate") {

active = false;

}

}

};

// Modifier 1: Collision detection

public boolean CollisionDetected(Projectile fireball){

if(fireball.velocity = 0){ //fireball stops when it hits anything

return true;

}

else{

return false;

}

};

// Modifier 2: Expansion

public void ExpandProjectile(projectile fireball){

fireball.volume = 0.09; // in m³

};

};

Niku20creators' thoughts