Untitled

 avatar
unknown
java
a year ago
3.6 kB
7
Indexable
package com.ruse.world.content.newraidsystem;

import com.ruse.model.Item;
import com.ruse.model.Position;
import com.ruse.world.entity.impl.npc.NPC;
import com.ruse.world.entity.impl.player.Player;

import java.util.List;

public class TestRaid extends Raid {
    @Override
    public List<RaidWave> getWaves() {
        return List.of(
                new RaidWave(
                        new NPC(131, new Position(3333, 3333)),
                        new NPC(131, new Position(3333, 3334))
                ),
                new RaidWave(
                        new NPC(131, new Position(3331, 3333))
                ),
                new RaidWave(
                        new NPC(131, new Position(3334, 3335))
                )
        );
    }

    @Override
    public List<Item> getCost(RaidDifficulty difficulty) {
        return switch (difficulty) {
            case EASY -> List.of(
                    new Item(995, 100_000),
                    new Item(6570, 1)
            );
            case MEDIUM -> List.of(
                    new Item(995, 500_000),
                    new Item(6570, 1)
            );
            case HARD -> List.of(
                    new Item(995, 750_000),
                    new Item(4151, 1),
                    new Item(11732, 1)
            );
        };
    }

    @Override
    public int getPointsReward(RaidDifficulty difficulty) {
        return switch (difficulty) {
            case EASY -> 25;
            case MEDIUM -> 50;
            case HARD -> 100;
        };
    }

    @Override
    public boolean meetsRequirement(Player player, RaidDifficulty difficulty) {
        return switch (difficulty) {
            case EASY -> player.getDonator().isMysticalPlus();
            case MEDIUM -> player.getDonator().isObsidianPlus();
            case HARD -> player.getDonator().isForsakenPlus();
        };
    }

    @Override
    public RaidRewardTable getRewardTable() {
        return new RaidRewardTable(
                List.of(
                        // common rewards
                ),
                List.of(
                        // uncommon rewards
                ),
                List.of(
                        // rare rewards
                )
        );
    }

    @Override
    public RaidRewardTableChances getRewardTableChances(RaidDifficulty difficulty) {
        return switch (difficulty) {
            case EASY -> new RaidRewardTableChances(70, 20, 10);
            case MEDIUM -> new RaidRewardTableChances(50, 35, 15);
            case HARD -> new RaidRewardTableChances(45, 30, 20);
        };
    }

    @Override
    public NpcStatsOverrides getNpcStatsOverrides(RaidDifficulty difficulty) {
        return switch (difficulty) {
            case EASY -> new NpcStatsOverrides(1.0, 0, 0, 0);
            case MEDIUM -> new NpcStatsOverrides(1.5, 250, 200, 15);
            case HARD -> new NpcStatsOverrides(2.0, 350, 400, 25);
        };
    }

    @Override
    public String getDescription(RaidDifficulty difficulty) {
        return switch (difficulty) {
            case EASY -> """
                    Easy raid description here
                    Can be as many lines as u want
                    """;
            case MEDIUM -> """
                    Medium raid description here
                    Same as above
                    """;
            case HARD -> """
                    Hard raid description here
                    Same as above
                    """;
        };
    }
}
Editor is loading...
Leave a Comment