uploading base project structure (& ariel skin and some nerielle item icons! also 20% nerielle skin)
|
@ -0,0 +1,16 @@
|
||||||
|
<!--
|
||||||
|
- Put a `name` field so the game recognizes for which item it should give
|
||||||
|
the player a costum. If you leave it empty, several items might give you
|
||||||
|
the same costume.
|
||||||
|
- the `priority` field controls on which costum layer the costum is applied
|
||||||
|
for exemple, priority="1" would put the costum behind isaac's head, and
|
||||||
|
priority="99" would put the costum in front of all other costums
|
||||||
|
-->
|
||||||
|
<costumes anm2root="gfx/">
|
||||||
|
<costume
|
||||||
|
name="Your item's name"
|
||||||
|
anm2path="path to your custom animation in gfx.anm2"
|
||||||
|
priority="99"
|
||||||
|
type="passive"
|
||||||
|
/>
|
||||||
|
</costumes>
|
|
@ -0,0 +1,32 @@
|
||||||
|
<!--
|
||||||
|
- Add an id field in order to make an entity of the type you want.
|
||||||
|
For exemple, if you wanted to make a new type of bomb, put `id="4"`.
|
||||||
|
- Add a `variant="n"` if you are having issues getting your entity
|
||||||
|
to appear in the game.
|
||||||
|
- Control the speed of your enemy with `friction`.
|
||||||
|
That value is between 0 and 1, values greater than 1 might make
|
||||||
|
your entity accelerate to uncontrolable speeds.
|
||||||
|
- The `portrait` fields control what pictures show when the entity kills the
|
||||||
|
player.
|
||||||
|
- Put the `collisionDamage` value to "0" if you want the entity to be
|
||||||
|
harmless when directly hitting the player.
|
||||||
|
-->
|
||||||
|
<entities anm2root="gfx/" version="5">
|
||||||
|
<entity name="the entity's name"
|
||||||
|
anm2path="animation file name in your gfx in resources folder.anm2"
|
||||||
|
reroll="true"
|
||||||
|
baseHP="10"
|
||||||
|
boss="0"
|
||||||
|
champion="1"
|
||||||
|
collisionDamage="1"
|
||||||
|
collisionMass="30"
|
||||||
|
collisionRadius="13"
|
||||||
|
friction="1"
|
||||||
|
numGridCollisionPoints="7"
|
||||||
|
shadowSize="0"
|
||||||
|
stageHP="0"
|
||||||
|
portrait="30"
|
||||||
|
bestiary="false"
|
||||||
|
><gibs amount="6" blood="1" bone="0" eye="0" gut="1" large="0" />
|
||||||
|
</entity>
|
||||||
|
</entities>
|
|
@ -0,0 +1,38 @@
|
||||||
|
<!--
|
||||||
|
Note: imagine that each item adds a number of tokens to the item pool.
|
||||||
|
Each time the game must generate an item pedestal, it takes out a random
|
||||||
|
token from the item pool and puts the item on the pedestal.
|
||||||
|
|
||||||
|
- `weight` the number of tokens to put in the pool for your item. Greater
|
||||||
|
values makes your item more likely to show up.
|
||||||
|
|
||||||
|
- `decreaseby` Number of tokens to remove from the pool when
|
||||||
|
the player **sees** the item. Greater numbers means you are
|
||||||
|
less likely to see the item after having seen it once.
|
||||||
|
|
||||||
|
- `removeon` Minimum number of tokens to accept the item in the pool.
|
||||||
|
If your item has less token remaining than the `removeon` value,
|
||||||
|
the player won't see it anymore, even if there is remaining tokens.
|
||||||
|
|
||||||
|
- Note that item weights might be pool dependent.
|
||||||
|
|
||||||
|
- Note that picking up the item will remove it from all the pools it is in.
|
||||||
|
|
||||||
|
- All values can be natural or rational numbers.
|
||||||
|
-->
|
||||||
|
<ItemPools>
|
||||||
|
<Pool name="treasure">
|
||||||
|
<Item name="Your item name"
|
||||||
|
weight="2"
|
||||||
|
removeon="0.1"
|
||||||
|
decreaseby="1"
|
||||||
|
/>
|
||||||
|
</Pool>
|
||||||
|
<Pool name="angel">
|
||||||
|
<Item name="Your item name"
|
||||||
|
weight="2"
|
||||||
|
removeon="0.1"
|
||||||
|
decreaseby="1"
|
||||||
|
/>
|
||||||
|
</Pool>
|
||||||
|
</ItemPools>
|
|
@ -0,0 +1,79 @@
|
||||||
|
<!--
|
||||||
|
Note: there is several type of items, the type is the name of the
|
||||||
|
entry (<passive.../> defines a passive type item).
|
||||||
|
- Those are: passive, active, familiar and trinket
|
||||||
|
|
||||||
|
- use the fields `bombs`, `coins` and `keys` to control how many
|
||||||
|
consumables your item gives when you pick it up. For exemple
|
||||||
|
`bombs="10" keys="10"` gives the player 10 keys and 10 bombs when
|
||||||
|
the item is picked up.
|
||||||
|
|
||||||
|
Note: all heart counts are calculated in half hearts.
|
||||||
|
- `maxhearts` is the number of heart containers to add.
|
||||||
|
- `hearts` is count of red hearts to add, it won't exceed the amount of
|
||||||
|
heart containers the player have.
|
||||||
|
- `soulhearts` is the number of spirit hearts to add.
|
||||||
|
- `blackhearts` the number of black hearts to add.
|
||||||
|
|
||||||
|
Note: Red Candle has a `maxcharges` value of 110
|
||||||
|
- For active items `maxcharges` control the number of charges the item have
|
||||||
|
A value of `maxcharge="0"` means infinite charges.
|
||||||
|
|
||||||
|
- `cooldown` is the number of frames you want the player to freez after
|
||||||
|
using the item
|
||||||
|
|
||||||
|
Note on making stat modifying items: the mod needs to have a
|
||||||
|
MC_EVALUATE_CACHE callback in main.lua in order to catch the
|
||||||
|
modification and apply the actual stat changes.
|
||||||
|
- `cache` are the flags to set when calling functions callbacks to
|
||||||
|
MC_EVALUATE_CACHE. They are a space separated list of stat names,
|
||||||
|
the possible values are as following:
|
||||||
|
`speed`, `range`, `shotspeed`, `damage`, `tearcolor`, `tearflag`,
|
||||||
|
`firedelay`, `luck`, `flying` and `all`
|
||||||
|
All the flags might not work, but some work. If you want to call
|
||||||
|
MC_EVALUATE_CACHE with the damage, luck and speed flags, put
|
||||||
|
`cache="damage luck speed"` in your item xml definiton.
|
||||||
|
|
||||||
|
- `special` if you want your item to be special, because it's special
|
||||||
|
a special item has special set to `special="true"`
|
||||||
|
|
||||||
|
- `devilprice` the number of red heart containers your item should cost in
|
||||||
|
a devil room (`devilprice="1"` or `devilprice="2"`)
|
||||||
|
|
||||||
|
<passive name="passive_name.name"
|
||||||
|
description="flavor text shows when you pick up the item"
|
||||||
|
gfx="itemsprite.png"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<active name="an active item name"
|
||||||
|
description="flavor text shows when you pick up the item"
|
||||||
|
gfx="itemsprite.png"
|
||||||
|
maxcharges="0"
|
||||||
|
/>
|
||||||
|
-->
|
||||||
|
<items gfxroot="gfx/collectibles/items/" version="1">
|
||||||
|
|
||||||
|
<passive name="Bronze Scale Collar"
|
||||||
|
description="Shiny!"
|
||||||
|
gfx="bronze_scale.png"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<passive name="Scaly Egg"
|
||||||
|
description="A warming companion."
|
||||||
|
gfx="scaly_egg.png"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<active name="Zappy Breath!"
|
||||||
|
description="Zappy-zapps in a bottle!"
|
||||||
|
gfx="zappy.png"
|
||||||
|
maxcharges="4"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<passive name="Dragon Mark"
|
||||||
|
description="Fiery"
|
||||||
|
gfx="drake_mark.png"
|
||||||
|
soulhearts="2"
|
||||||
|
maxcharges="4"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</items>
|
|
@ -0,0 +1,20 @@
|
||||||
|
<!--
|
||||||
|
** Taken from the nicalis sample mod:
|
||||||
|
** http://steamcommunity.com/sharedfiles/filedetails/?id=838994644
|
||||||
|
-->
|
||||||
|
<players root="gfx/characters/costumes/"
|
||||||
|
portraitroot="gfx/ui/boss/"
|
||||||
|
nameimageroot="gfx/ui/boss/"
|
||||||
|
bigportraitroot="gfx/ui/stage/">
|
||||||
|
<player name="Ariel"
|
||||||
|
id="1"
|
||||||
|
skin="ariel/base.png"
|
||||||
|
hp="1" black="3"
|
||||||
|
items="23"
|
||||||
|
key = "1"
|
||||||
|
nameimage="PlayerName_01_Ariel.png"
|
||||||
|
portrait="PlayerPortrait_01_Ariel.png"
|
||||||
|
bigportrait="PlayerPortraitBig_01_Ariel.png"
|
||||||
|
skinColor="-1"
|
||||||
|
/>
|
||||||
|
</players>
|
|
@ -0,0 +1,38 @@
|
||||||
|
local Lore = RegisterMod( "thecreativelore", 1 );
|
||||||
|
|
||||||
|
--[[ CHARACTERS ]]
|
||||||
|
-- Ariel
|
||||||
|
local ARIEL_NAME = "Ariel";
|
||||||
|
local ARIEL_TYPE = Isaac.GetPlayerTypeByName(ARIEL_NAME);
|
||||||
|
local ARIEL_STATS = {
|
||||||
|
MoveSpeedNaturalBonus = 0.10,
|
||||||
|
MoveSpeedNaturalMultiplier = 0.9,
|
||||||
|
DamageNaturalMultiplier = 0.70,
|
||||||
|
ShotSpeedNaturalMultiplier = 0.8,
|
||||||
|
MaxFireDelayNaturalMultiplier = 1.0,
|
||||||
|
MaxFireDelayNaturalExponent = 0.9,
|
||||||
|
TearHeightBonus = 12,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
--[[ Stats ]]
|
||||||
|
function Lore:EvaluateCache( player, cacheFlag )
|
||||||
|
if player:GetPlayerType() = ARIEL_TYPE then
|
||||||
|
--[[ if cacheFlag == CacheFlag.CACHE_SPEED then
|
||||||
|
player.MoveSpeed = player.MoveSpeed * ARIEL_STATS.MoveSpeedNaturalMultiplier + ARIEL_STATS.MoveSpeedNaturalBonus;
|
||||||
|
elseif cacheFlag == CacheFlag.CACHE_SHOTSPEED then
|
||||||
|
player.ShotSpeed = player.ShotSpeed * ARIEL_STATS.ShotSpeedNaturalMultiplier;
|
||||||
|
elseif cacheFlag == CacheFlag.CACHE_DAMAGE then
|
||||||
|
player.Damage = player.Damage * ARIEL_STATS.DamageNaturalMultiplier;
|
||||||
|
elseif cacheFlag == CacheFlag.CACHE_FIREDELAY then
|
||||||
|
player.MaxFireDelay = math.floor( math.max( 1, player.MaxFireDelay * ARIEL_STATS.MaxFireDelayNaturalMultiplier ) ^ ARIEL_STATS.MaxFireDelayNaturalExponent );
|
||||||
|
elseif cacheFlag == CacheFlag.CACHE_RANGE then
|
||||||
|
player.TearHeight = player.TearHeight + ARIEL_STATS.TearHeightBonus;
|
||||||
|
elseif cacheFlag == CacheFlag.CACHE_TEARCOLOR then
|
||||||
|
--player.TearColor = GAPPI_COLOR;
|
||||||
|
--Player.LaserColor = GAPPI_COLOR;
|
||||||
|
end]]
|
||||||
|
player.CanFly = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Lore:AddCallback( ModCallbacks.MC_EVALUATE_CACHE, Lore.EvaluateCache );
|
|
@ -0,0 +1,8 @@
|
||||||
|
<metadata>
|
||||||
|
<name>thecreativelore</name>
|
||||||
|
<directory>thecreativelore</directory>
|
||||||
|
<description/>
|
||||||
|
<version>1.0</version>
|
||||||
|
<visibility/>
|
||||||
|
</metadata>
|
||||||
|
|
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 531 B |
After Width: | Height: | Size: 392 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.1 KiB |