Echo #11

Posted by Phoebii on Oct. 18, 2015, 12:54 p.m.

Done a lot this week, release day of version 0.3.0 is getting closer and closer!

This week I have…

​Decreased chance of getting higher rarity parts with weapon properties.

Decreased chance of getting part safes from ruins.

Increased amount of XP required to level up.

Changed few achievements.

​Changed basic attack ability, now players will be able to upgrade and downgrade it.

Changed plasma burst ability, now it works like activate weapons ability, just for ion cannons.

Changed aggravating ray ability.

Rebalanced unleash weapons ability.

Rebalanced resurrect armour ability.

Rebalanced immobilize ability.

Rebalanced spoil weakness ability.

Rebalanced plasma wave ability, now plasma waves are faster and not too powerful.

Rebalanced trigger explosions ability.

Rebalanced reap armour ability.

​​Rebalanced ethereal burst ability.

Moved ethereal blast ability to nomad ability page.

Moved plasma wave ability to nomad ability page.

Moved reap armour ability to goliath ability page.

Fixed many minor issues.

Updated projectile sprites.

Added Paradise region background.

Next week I'm planning…

To finish updating abilities.

To fix many small issues again.

To update Sector Six map. I keep postponing this one!

Comments

twisterghost 8 years, 7 months ago

This is looking really cool. Care to give a high level overview of how you manage achievements in code? I always thought it must get really messy to track all the different things needed for achievements.

Phoebii 8 years, 7 months ago

Well, first I set every achievement like this:

// Object 'controller' Create event

ach[1,0] = false; // Achieved?
ach[1,1] = 0; // Achievement progress
ach[1,2] = 1000; // Achievement goal
ach[1,3] = "Swarmling purge"; // Achievement name
ach[1,4] = "Destroy 1000 swarmlings"; // Achievement description

Then I use script to check and complete achievements:

// scr_achievement_check(achievement_id)

with(controller)
{
    if ach[argument0,0] = false // Check if achievement is not achieved yet
    {
        ach[argument0,1] += 1; // Increase achievement progress
    
        if ach[argument0,1] >= ach[argument0,2] // If progress reaches goal, complete achievement
        {
        ach[argument0,0] = true;    
 
        }
    }
}

So if I want player to achieve aforementioned swarmling purge achievement:

if hp < 1 // If swarmling HP is less than one, destroy swarmling and check for achievement
{
instance_destroy();
scr_achievement_check(1); // Swarmling purge achievement
}