Recent Posts

Pages: 1 ... 8 9 [10]
91
Eufloria Classic Mods / Re: The "I want to but I can't" modding requests thread
« Last post by sillytuna on September 29, 2015, 12:27:23 AM »
For completion, the mine object itself is defined as:

AddMob Type:ParameciumMine Parent:Mine
   Set speciesID                     PARAMECIUM_MINE
   Set sprite                          ParameciumMine
   Set onActivateLuaHandler            ParameciumMineActivateHandler
   Set onUpdateLuaHandler               ParameciumMineUpdateHandler
   Set onDeathLuaHandler               ParameciumMineDiedHandler
   Set defaultScale                  1
   Set speedPowerRule                   1, 20, 1.5
   Set explosive.rangePowerRule         15, 15, 1
   Set detonator.triggeredFuseTimerPowerRule   0.15, 0.15, 1
   Set detonator.triggeredSprite         ActivatedParameciumMine
92
Eufloria Classic Mods / Re: The "I want to but I can't" modding requests thread
« Last post by sillytuna on September 29, 2015, 12:26:09 AM »
The ParameciumMine sprite is defined as:

AddSprite Type:ParameciumMine
   AddLayer Body
      Set type                        TextureCenter
      Set texture                        SpriteTexture1
      AddElement Body_1
         Set collision                  0.5
         Set baseWidth                   5
         Set baseLength                  4
         Set colour1                     BodyBack, 150
         Set colour2                     BodyFront, 150
         Set hotspotMode                  Relative
         Set hotspot                     0, 0.1
      AddElement Body_2
         Set baseWidth                   5
         Set baseLength                  4
         Set angle                     180
         Set colour1                     BodyBack, 150
         Set colour2                     BodyFront, 150
         Set hotspotMode                  Relative
         Set hotspot                     0, -0.1

   AddLayer Light
      Set type                        TextureCenter
      Set texture                        SpriteGlow
      AddElement Light_1
         Set baseWidth                  7
         Set baseLength                  7
         Set colour1                     163, 249, 2, 150
         Set colour2                     163, 249, 2, 150


AddSprite Type:ActivatedParameciumMine Parent:ParameciumMine
   SelectLayer Light
      SelectElement Light_1
         Set colour1                     White
         Set colour2                     White

93
Eufloria Classic Mods / Re: The "I want to but I can't" modding requests thread
« Last post by sillytuna on September 29, 2015, 12:21:02 AM »
ERPG will be fully documented. A small amount can be seen in draft level here:

https://github.com/sillytuna/eufloriarpg-docs

(clone or download as a zip)

That'll be massively updated at the end of October and the updated repo will include the Slate build tools so you can easily fork them. We're discussing whether to release a kind of blank version of the build to allow people to experiment with the modding once I've got things working in Unity 5. I'm a little hesitant as there are still some big changes ahead of us and I don't want to screw people over, but it'll be fun to see what people can do with things like programmatic animation as long as they understand that the modding side has many pending changes.

Note - modding is Lua based and through config files. No need to use Unity. No editors as yet.

This code below animates the green mines shown in the video. Note that Eufloria sprites are layered set of shape elements, and each element is positioned/sized/distorted based on the entity's attributes. Animation can then make further amends live. Complex sprites and animation are in depth topics but you can get great results. Other people will just create sprites with a single basic texture quite happily.



function ParameciumMineUpdateHandler(entity, time)
   -- Update
   --
   --

   -- Animation
   --
   -- STEP 1
   --
   -- Get the SpriteDef since that has our basic size information
   --
   -- We can use any of the following to get the relevant layers/elements:
   --
   --      local layer = entity.spriteDef:GetLayer("Body")
   --      local element = entity.spriteDef:GetElement(layer, "Body_1")
   -- or in one call:
   --      local element = entity.spriteDef:GetLayerElement("Body", "Body_1")
   --
   -- However, we can just work with the sprites we created, so can assume body and element orders
   -- which is much faster. The layers and elements are in lists:
   --      layer = entity.spriteDef.layers[<index>]
   --     element = layer.elements[<index>]

   local spriteDef = entity.spriteDef

   local elementUpper = spriteDef:GetIndexedLayerElement(0, 0)
   local elementLower = spriteDef:GetIndexedLayerElement(0, 1)

   local radiusUpper = elementUpper.baseWidth / 2
   local lengthUpper = elementUpper.baseLength

   local radiusLower = elementLower.baseWidth / 2
   local lengthLower = elementLower.baseLength

   -- STEP 2
   --
   -- Get the sprite instance. This is the sprite that is rendered, not the original definition.
   -- This has a *different* format since it's a processed version that essentially output the resulting
   -- polygon information.
   --
   -- Changing the original SpriteDef will be permanent (per level) and will affect all sprites
   -- using that SpriteDef as this is not instanced. If this is done, for the change to have an effect:
   --
   -- Immediate on this sprite:
   --      entity.ProcessSprites()
   --
   -- From the next frame on this sprite:
   --      entity.spriteInstanceDirty = true
   --
   -- If all sprites using the SpriteDef need to use it, they all need their dirty flag set.
   --
   -- Alternatively - change the SpriteDef, process the sprite, then change the SpriteDef back again.
   -- This prevents long term side-effects and may be needed where more complex changes are used.
   --
   -- We can use any of the following to get the relevant layers/elements:
   --
   --      local rawLayer = entity.spriteInstance:GetRawLayer("Body")
   --      local rawElement = entity.spriteInstance:GetRawElement(rawLayer, "Body_1")
   -- or in one call:
   --      local rawElement = entity.spriteInstance:GetRawLayerElement("Body", "Body_1")
   --
   -- However, we can just work with the sprites we created, so can assume body and element orders
   -- which is much faster. The layers and elements are in a list/array:
   --      rawLayer = entity.spriteInstance.rawLayers[<index>]
   --     rawElement = rawLayer.rawElements[<index>]
   --

   local spriteInstance = entity.spriteInstance

   local rawElementUpper = spriteInstance:GetIndexedRawLayerElement(0, 0)
   local rawElementLower = spriteInstance:GetIndexedRawLayerElement(0, 1)
   local rawElementLight = spriteInstance:GetIndexedRawLayerElement(1, 0)

   -- STEP 3
   --
   -- The following attributes can be changed in a raw element, which is effectively the rendered polygon:
   --
   --      Vector2 hotspot
   --      float radius
   --      float length
   --      float angle
   --      float angle2 - used by Nose
   --      Color colour1
   --      Color colour2
   --      float offset
   --      float extension - used by ExtendedLine
   --
   -- Which of these attributes have an affect depends on the type of element being rendered.
   --

   local data = entity.data

   -- Get the current point in the animation
   local animationLength = data.animationLength
   local time = App.game.levelTime + data.animationOffset
   local t = time - (math.floor(time / animationLength) * animationLength)

   -- Sine pulse
   local minScale = 1

   local scale = math.sin((t * math.pi * 2)/animationLength)
   local finalScale = (minScale ) + (scale * 0.2)

   rawElementUpper:SetRadius(radiusUpper * finalScale)
   rawElementUpper:SetLength(lengthUpper * finalScale)
   rawElementLight:SetOffset(scale)

   finalScale = (minScale) + (-scale * .2)
   rawElementLower:SetRadius(radiusLower * finalScale)
   rawElementLower:SetLength(lengthLower * finalScale)
   rawElementLight:SetRadius(radiusUpper * (1 + (math.abs(scale))))
   rawElementLight:SetLength(radiusUpper * (4.5 - (0.5 * math.abs(scale))))

   -- STEP 4
   --
   -- If the size expands to larger than the original sprite, call:
   --
   --   entity:RecalculateExtents()
   --
end
94
Eufloria Classic Mods / Map - Eclipse-B
« Last post by Lost Seedling on September 15, 2015, 08:43:48 AM »


Eclipse-B

In this expanded sequel to the Eclipse map, you will encounter thousands of randomly- generated asteroid fields as well as unique, manually-constructed map designs. Eclipse-B is extremely modifiable and chock-full of features to make your game-experience a pleasing one. If you enjoy observing AI battles, Eclipse-B is particularly well-suited to that pursuit. Whether you want to just observe, or wish to test your skills against the AI opponents, endless challenges await you in Eclipse-B!

Features:
Map Preview
Selectable opponents
Connections toggle/options
Eclipse-mode toggle
Selectable Background and Connections colors
Introducing "Resources" grid- monitor and compare asteroid attribute-ratios per Empire
Frames-per-second monitor
Leaderboard grid courtesy of Aino
Auto map-centering and map-zooming
Asteroid field shape adapts to screen dimensions
Charts toggle
Asterstats toggle
Moveable display grids with screen memory
"Alerts" options/toggle- pauses game at significant milestones- perfect for AI war scenarios
End-game performance reports
Map-save option for replaying your favorite map configurations
Setting-save option for customizing your screen layout to your personal preference
Other features awaiting your discovery

Notes:
Due to severe and unresolvable problems in keeping the native Eufloria AI from interfering with the user-created AI’s, I eliminated that option entirely from this map. While some of this map’s features can severely stretch the limits of your computer memory and the game itself, even to the point where the game shuts down completely, I have tried to limit the size of the asteroid fields to remain under or close to 100 asteroids. If you want, you can adjust the designated code options and create maps with hundreds of asteroids (my computer’s practical limit was around 400). As this time of publication, I am not sure how successfully it will run on most computers. Fortunately, all of the “extras” can be turned on or off as needed, as some put more of a drain on performance than others. A little experimentation will tell you how many asteroids your computer can handle and so you can then skip over those particular maps as they are previewed.
Please let me know how this map performs and notify me of any problems or requests for additional features.  I will only be able to provide “support” and “fixes” for a very short time, although I may add custom maps sporadically in the future.

Lost Seedling

Fixes/Updates:
09/15/15 Ver 1.0
Eclipse-B Published. No known issues.







95
Eufloria Classic Mods / Re: The "I want to but I can't" modding requests thread
« Last post by Lost Seedling on September 08, 2015, 02:40:30 PM »
From Sillytuna:
Quote
The current Eufloria (RPG) work is -heavily- moddable. Still quite a bit to do on that front but I'm looking forwards to seeing what people can do.

If you want future versions of Eufloria to be long-lived due to interest from a modding-community, I suggest greater effort be made in documenting and explaining all scripting functions, and particularly the drawing functions available. Documentation such as this thread:

http://www.euflorium.com/index.php?topic=212.0

were extremely helpful. The less time modders have to spend experimenting the more time they will have in developing new maps. It seems many of the most successful games seem to have a thriving modding community keeping them fresh and alive.

I know it's been talked about in the past, but a more organized one-stop shop for uploading and downloading user-made maps would be helpful.

As for specific requests, in addition to many of the suggestions already made on this thread, I would like the ability to "read" a file without the player having to go into the lua code and make modifications. For example, if I create a map with a write-text-to-a-file function, the same map should have the ability to then read-the-text-file the next time it is run. This would enable the player to save information from one session to another- like configurations, statistics, or whatever variables I choose.

I would also like the ability to use color in a DrawText function, as well as control how text, or any drawing function for that matter, is layered over or under other drawings or asteroids. I don't know how that works but I assume there is some sort of hierarchical assignment given to a drawing command determining it's level of visibility in front of or behind other objects/drawings.

96
Eufloria Classic Mods / Re: Installation of custom levels
« Last post by sillytuna on September 05, 2015, 08:07:49 PM »
The current Eufloria (RPG) work is -heavily- moddable. Still quite a bit to do on that front but I'm looking forwards to seeing what people can do.
97
Eufloria Classic Mods / Re: Installation of custom levels
« Last post by Lost Seedling on August 31, 2015, 11:10:15 AM »
Aino, I think Cercentil meant "Is it possible for a mere mortal...".
98
Eufloria Classic Mods / Re: Installation of custom levels
« Last post by Aino on August 31, 2015, 02:51:35 AM »
Actually, you can. I mean, you CAAAAAN, but it's not going to be the same.
The maps are still in lua code, yet the game changes the variables and classic maps won't work on HD without some tweaking to the code. Some functionality, actually a lot of functionality, is not present in HD; which means the map can't stay the same.

This means custom maps works on Eufloria HD, yet the old maps you know and love will most likely not work. And you need to use the campaign levels for custom maps, as there is no other places to access maps.
99
Eufloria Classic Mods / Re: Installation of custom levels
« Last post by Lost Seedling on August 29, 2015, 05:29:23 PM »
It is not possible. You will have to play custom maps on Eufloria Classic.
100
Eufloria Classic Mods / Re: Installation of custom levels
« Last post by Circentil on August 28, 2015, 03:56:39 PM »
Hello guys !  :)

I was wondering, is that impossible to install custom maps on eufloria HD ?

I wanted to try to beat the "Infinity" level (which is soooooo great  8) ) after years of not playing the game. I now have Eufloria HD and I can't see customs levels anymore...

Do I have to play on Eufloria classic and so a previous version ?

Pages: 1 ... 8 9 [10]