Dans ce chapitre, nous expliquerons les méthodes suivantes en citant le code source.
Si vous voulez voir l'image complète de chaque fichier, veuillez vous référer à ce qui suit.
https://github.com/kojim/StSModStudy/tree/master/mod001
ModTheSpire.json
{
"modid": "StsModStudy",
"name": "StsModStudy",
"author_list": ["ykojim"],
"description": "",
"version": "0.0.1",
"sts_version": "01-11-2019",
"mts_version": "3.7.0",
"dependencies": ["basemod", "stslib"],
"update_json": ""
}
C'est presque comme vous l'avez vu. Le modid doit être unique, alors donnez-lui un nom qui ne chevauche pas les autres.
@SpireInitializer
public class Main implements
EditCardsSubscriber, //Implémenter lors de l'ajout d'une carte
EditStringsSubscriber //Implémenter lors de la lecture d'un fichier de langue
{
public Main(){
BaseMod.subscribe(this);
}
// @Les classes qualifiées avec SpireInitializer doivent définir cette méthode
public static void initialize() {
Main main = new Main();
}
@Override
public void receiveEditStrings() {
//Ajoutez votre propre fichier de langue défini
// Settings.JPN pour la langue,ENG est inclus en anglais
BaseMod.loadCustomStringsFile(CardStrings.class, "assets/loc/cards-" + Settings.language + ".json");
}
@Override
public void receiveEditCards() {
//Ajoutez votre propre carte définie
BaseMod.addCard(new Flare());
}
}
@spireinitializer
La classe qualifiée avec l'annotation est la classe de point d'entrée.
Ici, nous activerons chaque fichier et carte de langue définis de manière unique.
Veuillez noter que l'interface à implémenter changera en fonction de ce que vous souhaitez réaliser.
Notez également que la méthode initialize
est requise.
//Les cartes sont définies en héritant de la classe CustomCard
public class Flare extends CustomCard {
public static final String ID = "stsmodstudy:Flare";
//cartes lues dans la classe Main avec getCardStrings-JPN.Obtenir des informations sur la chaîne dans json
private static CardStrings cardStrings = CardCrawlGame.languagePack.getCardStrings(ID);
public static final String NAME = cardStrings.NAME;
public static final String DESCRIPTION = cardStrings.DESCRIPTION;
Vous pouvez définir votre propre carte en définissant une classe qui hérite de la classe CustomCard.
Étant donné que les données de la chaîne de caractères que l'utilisateur peut voir doivent être internationalisées, elles seront définies dans le fichier de langue, pas dans cette classe.
Seule la clé
stsmodstudy: Flare``` pour obtenir les informations du fichier de langue est définie ici.
Il est recommandé de placer le modid devant et le nom de la carte après.
```java
//Effet activé lors de l'utilisation d'une carte
@Override
public void use(AbstractPlayer p, AbstractMonster m) {
//A fait des dégats
AbstractDungeon.actionManager.addToBottom(
new com.megacrit.cardcrawl.actions.common.DamageAction(
m,
new DamageInfo(p, this.damage, this.damageTypeForTurn),
AbstractGameAction.AttackEffect.SLASH_DIAGONAL) //Effet d'écran
);
//Faire une vulnérabilité
AbstractDungeon.actionManager.addToBottom(
new ApplyPowerAction( //Chamois/Tous les affaiblissements sont traités comme du pouvoir en interne
m,
p,
new VulnerablePower(m, this.magicNumber, false), //Vulnérable(=ennemi)À
this.magicNumber,
true,
AbstractGameAction.AttackEffect.NONE) //Effet d'écran
);
}
Cette méthode est la clé numéro un sur la carte. Si vous avez joué au jeu, vous saurez probablement que ce jeu est basé sur un modèle dans lequel les effets de l'utilisation de cartes sont empilés dans une pile et traités en séquence.
AbstractDungeon.En appelant chaque méthode d'actionManager, le traitement est ajouté à la pile.
Ici, nous sommes vulnérables tout en endommageant.
# Fichier de langue
```json
{
"stsmodstudy:Flare": {
"NAME": "56 guerriers",
"DESCRIPTION": "!D!A fait des dégats"
}
}
Définit les informations de langue de la carte.
name
Est le nom de la carte,description
Est-ce l'explication de l'effet de la carte.
description
Dans!d!
!b!
!m!
Chacun a une signification particulière.
!d!
Est une classe de cartedamage
basedamage
upgradeddamage
variable,
!b!
Est une classe de carteblock
baseblock
upgradedblock
variable,
!m!
Est une classe de cartemagicnumber
basemagicnumber
upgradedmagicnumber
Il est développé en variables en fonction de la situation.
Recommended Posts