設計

泰拉瑞亞困難模式前的小怪,血量大約在200以下,這時候的武器傷害大多在50以下,直到打敗血肉墻後的血月,會出現像是釘頭這樣血量4000多的精英怪,今天想要設計一款血量、高防禦、高抗擊退的肥胖殭屍,其原型參考CSO的達叔,也是我最喜歡的一隻殭屍。

sprite


「Sprite」是指 2D 遊戲中常見的 2D 圖形,在單一影像中具有多個“幀”,被稱為精靈表。用於動畫或變化,上圖的蜂王有4個幀,遊戲知道將 96 像素高的分成4個大小相等、24像素高的部分,遊戲會在這4幀之間循環,另外規定sprite必須是png檔,表中的圖必須被2像素分割,人物面向左側。

先用小畫家畫一張圖

高防禦血量且有獨特掉落物的殭屍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.ModLoader.Utilities;
using Terraria.GameContent.Bestiary;
using Terraria.GameContent.ItemDropRules;

namespace TestMod.Content.NPCs
{
public class TestZombie : ModNPC
{
public override void SetStaticDefaults()
{
// 殭屍幀數
Main.npcFrameCount[Type] = Main.npcFrameCount[NPCID.Zombie];

// 微光轉變成骷髏(減肥的概念)
NPCID.Sets.ShimmerTransformToNPC[NPC.type] = NPCID.Skeleton;

// 怪物圖鑑動畫
NPCID.Sets.NPCBestiaryDrawModifiers value = new()
{
Velocity = 1f
};
NPCID.Sets.NPCBestiaryDrawOffset.Add(Type, value);
}

public override void SetDefaults()
{
NPC.CloneDefaults(NPCID.Zombie);

// 高血量、防禦、擊退
NPC.damage = 10;
NPC.defense = 12;
NPC.lifeMax = 2000;
NPC.value = 60f;
NPC.knockBackResist = 0.9f;
AIType = NPCID.Zombie;
AnimationType = NPCID.Zombie;

// 掉落殭屍旗
Banner = Item.NPCtoBanner(NPCID.Zombie);
BannerItem = Item.BannerToItem(Banner);
}

// 掉落變態刀
public override void ModifyNPCLoot(NPCLoot npcLoot)
{
npcLoot.Add(ItemDropRule.Common(ItemID.PsychoKnife, 25));
}

// 生成機率
public override float SpawnChance(NPCSpawnInfo spawnInfo)
{
return SpawnCondition.OverworldNightMonster.Chance - 0.45f;
}

// 怪物圖鑑敘述
public override void SetBestiary(BestiaryDatabase database, BestiaryEntry bestiaryEntry)
{
bestiaryEntry.Info.AddRange(new IBestiaryInfoElement[]
{
BestiaryDatabaseNPCsPopulator.CommonTags.SpawnConditions.Times.NightTime,
new FlavorTextBestiaryInfoElement("Psycho Zombie")
});
}

}
}

遊戲畫面(大師困難模式)