The Stone Caves of Nores 2: a Dungeon by Xaklor


#21

Galactic serfs! Cower before my 6000+ lines of code!

the Stone Caves of Nores XML is complete! aside from the following items, the Stone Caves of Nores could be implemented in RotMG right now. to the best of my knowledge, these things would still need to be done:

  • Sealed. this is a completely new status effect and would need to be put into the games source code, there’s nothing I can do in XML files to make this happen. however, if DECA decided not to use this, every instance of Sealed could be replaced with pet stasis/sick/weak etc.

  • Bottomless Pits. again, new effect. DECA has to add it, not me. but if DECA decided not to use this either, they can simply be unwalkable tiles like the ones in sprite world. no big deal

  • The ability items. I can’t make a charging effect with xml, nor can I make a focused spell or a multi-stage inferno spawn. DECA would have to add something to make these effects work. (but come on, the Stone Star really should be implementable. just find the one line of code that says “speedy” and replace it with “paralyzed” and “berserk” or something.)

  • Map Generation. the XML documentation is public but the map generator isn’t. I would still need to figure out how the maps are generated and laid out. it sounds like I could handle this myself if I was in UGC, but I’m not.

  • Teleportation gimmick. I know for a fact that this is doable, it was used in the halloween nexus last year. the effect just isn’t documented somewhere I can see. I would need to learn this sorcery.

  • Testing. I haven’t seen a single line of code I’ve written in action, there’s no way on earth it all functions perfectly. once again, I could handle this myself, but I’m not in UGC.

so if DECA wanted this dungeon in action, and wanted to be as lazy as possible, all they would have to do is add me to UGC and add the new ability effects. if they still refused to do the second part, I could probably (though not happily) find some other effect for each ability, but it would be best if they could be added as-is. eventually new effects are going to need to be added at some point, just about everything that can be done at this point has either already been done by something else or is just broken as hell.


one final note, due to the poison buff a while back, Liquid Rage’s damage has been boosted slightly.


#22

Yep, it’s currently 100% impossible.

The only thing preventing this from being possible is the Shoot behavior not being able to damage enemies. If it were capable of doing that, this spell would be possible.

This is actually possible using the new ObjectToss Activate type (the type that was used for the Orb of Aether on public testing). You’d use

<Activate objectId=“string” throwTime=“int” color=“0xint”>ObjectToss</Activate>

objectId is the entity “thrown” by ObjectToss.
throwTime is pretty obvious. Same with color.

Orb of Aether set color to -1 (invisible) and throwTime to 0 to simply spawn the entity on the cursor.

In your case, an entity would spawn the Flames in around it, and the Flames themselves would use TrapTrigger to damage enemies.

The Speedy effect is actually hard-coded. It sucks, and I hate that Kabam lazily coded it that way.

Listen, young one, and I shall teach thee!
You’re talking about the TeleportPlayer behavior. It works like this:

<Behavior targetId=“string” range=“int” cooldown=“int”>TeleportPlayer</Behavior>

targetId is an entity. As the name implies, the player that’s teleported is teleported to that entity.
range is how close to the entity performing the behavior the player must be to be teleported.
cooldown is pretty self-explanatory. After teleporting a player, the entity can only teleport another player after the cooldown ends.


#23

huh. well I’ll go add that then.

yeah, I’m just saying that it really wouldn’t be that hard to go into the source code and change it.

neat, I can go add that too now. is there a limit to how big range can be? that might affect map generation down the road.


#24

You’ll still have to create the Flamehelper and Flame entities, btw.

Not that I’m aware of, but I haven’t used it much (at all, really).


#25

Um may I ask what level of education/current job do you do that gives you so much free time?

Anyway nice work, xaklor for ugc when


#26

@Xaklor
I just came at this idea you’ve come up with, and your dedication to it.

You’re going as far as producing XML code for your dungeon and the enemies and the items that come from it.

What will the enemies stats and attacks be, however?
Nevermind, I’m stupid. Looks balanced to me.


#27

I wish I knew. inquiries have been made, but answers have not been received. I think I remember Kiddforce mentioning somewhere that only one or very few people can actually work on xml testing things at a time, so it may be possible that they’re waiting until LH 2 is done. although it would would be really dumb if their answer was “no”, but decided to wait until then anyway to answer.

…well

if one were to, I don’t know, read the document, they might find a section of the document labeled “The Monsters”. if that person wanted further information, they might visit that section of the document and find some pages that look like this:

followed by a block of text that looks thusly:

I kid you not, the Soulsteel Revenant posses the most powerful projectile in the entire dungeon. The Soulsteel Revenant slowly crawls toward players while firing enormous waves of 15 nores waves, while annoying, this attack is hardly dangerous. After a few seconds of that, it shoots a sparse ring of 8 nores bolts and halts movement. It becomes invulnerable briefly and glows white, then resumes its stumbled chase while shooting singular nores flares. While in this second attack phase it moves faster than it did before, although one would still describe its approach as “slow”. After 4 flares have been shot, it pauses again and then charges at ice sphere speeds into the nearest player and repeats the whole cycle at point-blank. Revenants are not invulnerable during their second pause, and do not attack during their charge.

For the most part, this enemy is kind of harmless. But don’t lose track of it when it goes into its devastating attacking phase.

if this hypothetical person wanted to know exactly what some enemy wanted to do, they could then even check out the link that takes them to view this wonderful and enormous XML document and find something like this:

<Object id="Soulsteel Revenant" type="FIXME">
		<Group>soulsteel denizens</Group>
		<Enemy />
		<God />
		<Class>Character</Class>
		<StasisImmune />
		<StunImmune />
		<AnimatedTexture>
			<File>SCchars8x8</File>
			<Index>5</Index>
		</AnimatedTexture>
		<HitSound>monster/minion_of_oryx_hit</HitSound>
		<DeathSound>monster/golems_death</DeathSound>
		<Size>100</Size>
		<MaxHitPoints>10000</MaxHitPoints>
		<Defense>10</Defense>
		<XpMult>2.5641025641025643</XpMult>
		<Projectile id="0">
			<ObjectId>Nores Flare</ObjectId>
			<Damage>309</Damage>
			<Speed>20</Speed>
			<LifetimeMS>2000</LifetimeMS>
			<Size>160</Size>
			<MultiHit />
		</Projectile>
		<Projectile id="1">
			<ObjectId>Nores Wave</ObjectId>
			<Damage>22</Damage>
			<Speed>100</Speed>
			<LifetimeMS>1000</LifetimeMS>
			<Size>140</Size>
			<ConditionEffect duration="4">Slowed</ConditionEffect>
			<ConditionEffect duration="4">Sealed</ConditionEffect><!-- new status effect -->
		</Projectile>
		<Projectile id="2">
			<ObjectId>Nores Bolt</ObjectId>
			<Damage>100</Damage>
			<Speed>50</Speed>
			<LifetimeMS>1200</LifetimeMS>
			<Size>120</Size>
			<ConditionEffect duration="3">Paralyzed</ConditionEffect>
		</Projectile>
		<State id="Attack1">
			<Behavior range="11.0" numShots="15" cooldown="0.5" projectileId="1" angle="8">Shoot</Behavior>
			<Behavior range="0.6" speed="0.4">Follow</Behavior>
			<Transition afterTime="4">Pause1</Transition>
		</State>
		<State id="Pause1">
			<Behavior effect="Invulnerable">ConditionEffect</Behavior>
			<Behavior flashPeriod="0.5" flashRepeats="4">ShowEffect</Behavior>
			<Behavior type="auto" numShots="8" cooldown="20" projectileId="2" angle="45">Shoot</Behavior>
			<Transition afterTime="2">Attack2</Transition>
		</State>
		<State id="Attack2">
			<Behavior range="11.0" cooldown="1">Shoot</Behavior>
			<Behavior range="0.6" speed="0.8">Follow</Behavior>
			<Transition afterTime="4">Pause2</Transition>
		</State>
		<State id="Pause2">
			<Transition afterTime="1">Charge</Transition>
		</State>
		<State id="Charge">
			<Behavior cooldown="0" speed="2">Charge</Behavior>
			<Transition playerWithin="1|1">Attack1</Transition>
		</State>
	</Object>

but I guess that sounds like a waste of time and/or nonsensical to you? :thinking:


#29

:wink: not anymore, welcome to the club

you make me feel unworthy :open_mouth:


#30

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.