Recent posts

#1
Code Discussion / Re: Suggestion: Make it so you...
Last post by eska - Today at 03:22:39 PM
I don't really get why there is such a high need for changing the stat system. I remember suiciding a PC because of low stat-rolls when I was still a noob to Arm. But as years passed, I realized that the game needs all clever and stupid, strong and weak, agile and clumsy, tough and fragile.

Quote from: Windstorm on April 22, 2024, 05:46:08 PMIt's your birthday! You have just turned 24.
You can now hold no more than four limes.


Arm already does this, as you reach some milestones, your stats change. When you grow old, your strength reduces and wisdom increases.  Though I am not sure about at what age that happens.
#2
Code Discussion / Re: Suggestion: Make it so you...
Last post by Cowboy - Today at 03:14:28 PM
I think the current system works well enough.  I like the idea that someone might always be better than you are and sometimes you might just be the better one.  The old Luirs pit fights always brought out the best of the best mundane fighters. I do not want to see all cookie cutter clones, with the best stats, simply by typing a few numbers.
#3
Code Discussion / Re: Suggestion: Make it so you...
Last post by Pariah - Today at 03:07:39 PM
Quote from: Kavrick on Today at 02:50:53 PM
Quote from: Pariah on Today at 02:38:11 PMSo changing the system of stats would essentially be a total rewrite, then after you got stats done, you'd have to find everything that pulled from that old code of stats that no longer existed and fix those.  Let's say that every weapon skill, every offense/defense skill and magick all pull off the stats basics, that's basically re-writing the whole game when it's all said and done.
Oh I know a learning-by-doing stat system would be a much bigger task, but I feel like switching from random stats at creation to non-random stats at creation wouldn't be such a massive task.

Yeah but let's assume for a second that stats run in a playable range of 1-10 for humans and lets say that we are given 20 points to split between those four for humans.

All that would happen is people would just start experimenting to figure out the best min-max allocation and once discovered, using it every time.  You'd literally see six fighter type characters out of X player that all had the same stat spread.

Now I personally don't really care, but I think that's the hesitation point right there.  People will just game the system.  One thing I'm guilty of is once they instituted feed code, I literally will feed my beetle/sunlon/whatever to full every single day I go out, why?  Because it makes them better and you never know when you're gonna get sidetracked or stuck outdoors and need that extra 10 rooms of running or such.

So if I had to guess that's why they are against us assigning stats outright.
#4
Code Discussion / Re: Suggestion: Make it so you...
Last post by Kavrick - Today at 02:50:53 PM
Quote from: Pariah on Today at 02:38:11 PMSo changing the system of stats would essentially be a total rewrite, then after you got stats done, you'd have to find everything that pulled from that old code of stats that no longer existed and fix those.  Let's say that every weapon skill, every offense/defense skill and magick all pull off the stats basics, that's basically re-writing the whole game when it's all said and done.
Oh I know a learning-by-doing stat system would be a much bigger task, but I feel like switching from random stats at creation to non-random stats at creation wouldn't be such a massive task.
#5
Code Discussion / Re: Suggestion: Make it so you...
Last post by Pariah - Today at 02:38:11 PM
So below is a super rudimentary learn by doing with the stats of strength, wisdom, endurance and agility in Javascript.

So that whole bit of code, which I'm sure is 500X less than the rats nest that is arm, would have to be changed based on if stats or were flexible in how they are given.

Changing one thing would break another and cause you to have to re-write the whole thing.

So changing the system of stats would essentially be a total rewrite, then after you got stats done, you'd have to find everything that pulled from that old code of stats that no longer existed and fix those.  Let's say that every weapon skill, every offense/defense skill and magick all pull off the stats basics, that's basically re-writing the whole game when it's all said and done.

So that's why I'm not really pro rewrite or add point system, but I am pro improve stats throughout play, because if you have 4 in agility and now you change it to 5 in agility, that in itself doesn't break the code as it currently works.  But changing the whole system would require an arduous amount of work.

import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

// Skill class representing individual skills
class Skill {
    private String name;
    private int level;
    private int cooldown;
    private boolean isOnCooldown;

    public Skill(String name) {
        this.name = name;
        this.level = 1;
        this.cooldown = 0;
        this.isOnCooldown = false;
    }

    public String getName() {
        return name;
    }

    public int getLevel() {
        return level;
    }

    public int getCooldown() {
        return cooldown;
    }

    public boolean isOnCooldown() {
        return isOnCooldown;
    }

    public void levelUp() {
        level++;
        System.out.println(name + " has leveled up to " + level);
    }

    public void startCooldown(int cooldownTime) {
        isOnCooldown = true;
        Timer cooldownTimer = new Timer();
        cooldownTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                isOnCooldown = false;
                cooldownTimer.cancel();
            }
        }, cooldownTime * 1000); // Convert cooldown to milliseconds
        System.out.println(name + " is now on cooldown for " + cooldownTime + " seconds");
    }
}

// Player class representing a player in the game
class Player {
    private String name;
    private int strength;
    private int wisdom;
    private int agility;
    private int endurance;
    private Map<String, Skill> skills;

    public Player(String name, int strength, int wisdom, int agility, int endurance) {
        this.name = name;
        this.strength = strength;
        this.wisdom = wisdom;
        this.agility = agility;
        this.endurance = endurance;
        this.skills = new HashMap<>();
    }

    // Method to roll stats randomly
    private int rollStat() {
        Random random = new Random();
        return random.nextInt(5) + 1; // Generating random number between 1 to 5
    }

    // Method to learn a new skill
    public void learnSkill(String skillName) {
        Skill skill = new Skill(skillName);
        skills.put(skillName, skill);
        System.out.println(name + " has learned " + skillName);
    }

    // Method to improve a skill through learning by doing
    public void improveSkill(String skillName) {
        Skill skill = skills.get(skillName);
        if (skill != null) {
            int roll = rollStat(); // Roll for skill improvement
            if (roll <= wisdom - (5 - skill.getLevel())) {
                skill.levelUp();
            } else {
                System.out.println(name + " failed to improve " + skillName);
            }
        } else {
            System.out.println(name + " does not have the skill " + skillName);
        }
    }

    // Method to use a skill
    public void useSkill(String skillName) {
        Skill skill = skills.get(skillName);
        if (skill != null && !skill.isOnCooldown()) {
            int cooldownTime = (wisdom * 3 * 60) + ((5 - wisdom) * 10 * 60); // Cooldown calculation based on wisdom
            skill.startCooldown(cooldownTime);
        } else if (skill != null && skill.isOnCooldown()) {
            System.out.println(name + "'s " + skillName + " is still on cooldown");
        } else {
            System.out.println(name + " does not have the skill " + skillName);
        }
    }

    // Getters for player attributes
    public String getName() {
        return name;
    }

    public int getStrength() {
        return strength;
    }

    public int getWisdom() {
        return wisdom;
    }

    public int getAgility() {
        return agility;
    }

    public int getEndurance() {
        return endurance;
    }
}

public class MUDGame {
    public static void main(String[] args) {
        // Roll stats for the player
        Random random = new Random();
        int strength = random.nextInt(5) + 1;
        int wisdom = random.nextInt(5) + 1;
        int agility = random.nextInt(5) + 1;
        int endurance = random.nextInt(5) + 1;

        // Create a player with rolled stats
        Player player1 = new Player("Player1", strength, wisdom, agility, endurance);

        // Player1 learns some skills
        player1.learnSkill("Combat");
        player1.learnSkill("Magic");

        // Player1 improves their skills
        player1.improveSkill("Combat");
        player1.improveSkill("Magic");

        // Player1 tries to use skills
        player1.useSkill("Combat");
        player1.useSkill("Combat"); // Skill is still on cooldown
        player1.useSkill("NonExistentSkill"); // Trying to use a skill not learned
    }
}
#6
Code Discussion / Re: Suggestion: Make it so you...
Last post by Kavrick - Today at 02:13:08 PM
Quote from: AKawaiiBear on Today at 01:55:40 PMi think everyone (even staff) wants a point buy system but god have mercy on the poor soul who actually tries to make it happen on that ancient spaghetti code

The only person I've seen comment about it was halaster and he seemed pretty against the idea. I don't really know what the code looks like so it's hard to comment, but I've also seen an entire codebase written during the time Armageddon was down so it's a little hard to believe sometimes? Like stat allocation during character creation really shouldn't be connected to too many systems based on what code knowledge I do have of similar games.
#7
Code Discussion / Re: Suggestion: Make it so you...
Last post by AKawaiiBear - Today at 01:55:40 PM
rewriting the stat system from the ground up to be point-buy would be a herculean task since so many things depend on it
adding more rerolls would be quite simple to do since the reroll code is already done, which is why i suggested it, it's something someone could feasibly do in a few hours

i think everyone (even staff) wants a point buy system but god have mercy on the poor soul who actually tries to make it happen on that ancient spaghetti code
#8
Code Discussion / Re: Suggestion: Make it so you...
Last post by Pariah - Today at 01:15:48 PM
To get any type of large change, you need to get some member of staff to want it too, then hope they can convince Halaster, Brokkr or Usiku that it has merit enough to do it.

Shit rolls downhill but takes someone with enough oomph to get it to the top of the hill first to even be considered.
#9
General Discussion / Re: Seasons Q&A
Last post by Pariah - Today at 01:13:33 PM
Quote from: Fredd on Today at 12:41:36 PMI was just wondering when we'de see the sponsored roles posted. I got me a couple concepts I'de like to pitch.
That was sorta what I was hinting at too.  I'd rather have someone have extra time to come up with something they like and will play then someone to just slap some shit together and toss it in the hopper with little to no thought.
#10
General Discussion / Re: Seasons Q&A
Last post by Fredd - Today at 12:41:36 PM
I was just wondering when we'de see the sponsored roles posted. I got me a couple concepts I'de like to pitch.