[1.0] A RimWorld of Magic

Started by Torann, November 24, 2017, 11:17:05 PM

Previous topic - Next topic

Harry_Dicks

I have been getting these two errors for no parts to frostbite for a while, but I think the one about undead is new. Anything to worry about? I assumed that the frostbite one just means that they can't lost any "bits and pieces" of themselves to frostbite :P But the undead one?

Config error in Undead: TraitDef Undead has 0 commonality.
Verse.Log:Warning(String)
Verse.DefDatabase`1:ErrorCheckAllDefs()
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.GenGeneric:InvokeStaticMethodOnGenericType(Type, Type, String)
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()


Config error in Elemental: no parts vulnerable to frostbite
Verse.Log:Warning(String)
Verse.DefDatabase`1:ErrorCheckAllDefs()
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.GenGeneric:InvokeStaticMethodOnGenericType(Type, Type, String)
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()


Config error in Minion: no parts vulnerable to frostbite
Verse.Log:Warning(String)
Verse.DefDatabase`1:ErrorCheckAllDefs()
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.GenGeneric:InvokeStaticMethodOnGenericType(Type, Type, String)
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()

Torann

Quote from: Harry_Dicks on January 27, 2018, 11:18:00 AM
I have been getting these two errors for no parts to frostbite for a while, but I think the one about undead is new. Anything to worry about? I assumed that the frostbite one just means that they can't lost any "bits and pieces" of themselves to frostbite :P But the undead one?
Don't worry about any of these.  0 commonality just means a pawn will never get assigned the 'undead' trait, which makes sense because undead are created by necromancers.  You are correct about the frostbite, this just means minions and elementals have no body parts that can be hurt by frostbite.

Jan2607

I have two suggestions:

1) Could you add the update notes to the workshop page? I don't read every page of this thread and so I miss a lot of the notes. Or just add it to the starting post of this thread.

2) Could you disable the autogenerating home ares around defense pylons? My map is full of them and my cleaners are working on the wrong places :D
Because the pylons exist only for a short time period, I think it is unnecessary to generate these areas. And deleting them amnually is annoying. Switching the whole autogeneration off is not really an option for me.

Torann

Quote from: Jan2607 on January 27, 2018, 01:43:38 PM
I have two suggestions:

1) Could you add the update notes to the workshop page? I don't read every page of this thread and so I miss a lot of the notes. Or just add it to the starting post of this thread.
Done - update notes will be displayed as a news item in-game using the Hugslib Update Feature.

Quote from: Jan2607 on January 27, 2018, 01:43:38 PM
2) Could you disable the autogenerating home ares around defense pylons? My map is full of them and my cleaners are working on the wrong places :D
Because the pylons exist only for a short time period, I think it is unnecessary to generate these areas. And deleting them amnually is annoying. Switching the whole autogeneration off is not really an option for me.
Done - but included all summoned structures, not just pylons

Thanks for the suggestions.
The above updates and some other minor tweaks/bug fixes are included in v1.7.9

Jan2607


henk

A few more comments, mostly regarding late-game powerful spells.

I don't think any one spell should singlehandedly win a battle. The master spells, while needing to be powerful to justify their cost, should be toned down or come with a serious drawback.

- Firestorm : A possible drawback would be to causes burns to the user.
- Blizzard : Mostly fine, since it's pretty unpredictable. Using it where there's mountain roof causes way too many collapsed mountains.
- Eye of the storm : lots of fun. Everything in its path feels the pain. A possible downside would be to leave the user stunned for an extended period after using.
- Regrow limb : it appears to work even when it gives an error message saying it didn't; this also bypasses any temporary downside to the affected limb.

Additionally, I think enemies should have as chance to resist being Summoned, as this allows to eliminate enemies one by one with little to no risk. No resist for downed enemies. Longer cooldown would also help. Perhaps additional mana cost for more distant targets?

As for research, initial releases could include :
- Researching mana potions.
- A crafting table to transmute resources. i.e. food to wood, or stone to steel. Gold, jade and plasteel at higher tier. Usable by all, but casters get a speed bonus.
- The ability to craft ?? scripts and torn scripts, at proportional costs.
- A ritual to create a random high-value item, at great cost - possibly getting attacked in the process.
- A wizard-themed joy item, which gives small wizard training to magic users.
- Perhaps great downsides to using master-level spells, with researches which reduce or remove them.

And other ideas :
- A healing spell to take care of lesser permanent wounds, like scars, missing digits or ears/noses.
- A spell to mutate a target's random body part, improving its efficiency like a bionic.
- A spell that improves map travel speed, stealthiness or food consumption.

Jan2607

One of my enemies was a sharpshooter, but because he was a tribesman and had no sniper rifle equipped, I got the message he wouldn't have equipped a valid weapon, whenever he tried to use his abilities.
I think, I shouldn't get a message when my enemy can't use his ability.


Canute

Btw. i just wanted ask why you limit the sharshooter to advanced (industrial+) weaponry ?
Do you think it is to overpowered for bow's and pila's ?

billyma6

Quote from: Canute on January 28, 2018, 09:50:39 AM
Btw. i just wanted ask why you limit the sharshooter to advanced (industrial+) weaponry ?
Do you think it is to overpowered for bow's and pila's ?

sharp·shoot·er
ˈSHärpˌSHo͞odər
noun
a person skilled in shooting, especially with a rifle

"rifle", which is a type of gun. And just for realism's sake,  just imagine how a tribal archer could get the arrow to the velocities of a sniper bullet.

Harry_Dicks

#324
Maybe the idea of "sharpshooter" can also be applied to a sort of "Robin Hood" with bows. Just because that definition mentions rifles, I am not sure the meaning has always been that. I would think if you studied the etymology of sharpshooter, that you might be able to trace it's meaning back to where it does not imply only gunpowder weapons. However, maybe the "shooter" part of the word implies gunpowder. I'm sure there were phrases for these types who were extremely accurate with bows, crossbows, slings, or whatever, but this phrase could be eluding us because of our modern vocabulary.

Torann

Well if I can get the projectiles to dynamically reconfigure to match the projectile of the weapon, then the sniper might regain some of their skills with bows.  I tried that initially and I got errors instead of arrows. Change was made since the class didn't feel right with a bow user shooting bullets.  I'll come back to this at some point and hopefully make it when bow user uses headshot or disabling shot, it looks and sounds like an arrow.

Quote from: Jan2607 on January 28, 2018, 08:33:01 AM
One of my enemies was a sharpshooter, but because he was a tribesman and had no sniper rifle equipped, I got the message he wouldn't have equipped a valid weapon, whenever he tried to use his abilities.
I think, I shouldn't get a message when my enemy can't use his ability.
Will be corrected in next update.

Quote from: henk on January 27, 2018, 10:57:35 PM
A few more comments, mostly regarding late-game powerful spells.

I don't think any one spell should singlehandedly win a battle. The master spells, while needing to be powerful to justify their cost, should be toned down or come with a serious drawback.
I hear you, and spells, even late game ones, shouldn't be "single-handedly" winning fights.  I would say that, in general, magic is more powerful than it should be (at this point in time). That being said, fully upgraded late game spells are supposed to be close to the effectiveness of, say, a doomsday rocket.  Arguably, with arcane weakness, late game spells essentially disable the casting pawn for the rest of the fight.  Though, it wouldn't be too hard to add some physical drain, eg loss of food or rest which could cause the caster to collapse from exhaustion.  I could also implement some form of "backlash" that could physically harm the caster.  I'm a firm believer that the 'cost' of magic needs to balance the reward, so if you have idea's on how to better balance the cost/risk/reward, I'm all ears.

I think what really needs to happen is an overall balance sweep across all abilities.  I've been thinking about this for awhile, and rather than endless tweaking with every patch, I want to introduce the remaining classes, events, and items/crafting/enchantments... at that point I think will be the most effective time to perform an organized re-balancing.  Drastic adjustments will still happen as needed though - for example, summon.

I certainly agree that it can disrupt enemy formations very quickly so I'll look at reducing the range a bit and increasing the recast timer.  This is a difficult spell to balance though, without making summoning of items basically useless.

Quote- Regrow limb : it appears to work even when it gives an error message saying it didn't; this also bypasses any temporary downside to the affected limb.
Thanks for the note on this, I'll take a look to see why this could be occurring.

Harry_Dicks

Torann I think the idea of "exhausting" the mage after their spells is fantastic. Not tied to rest or anything, but maybe the caster could have some temporary consciousness loss. I'm not sure, but I like where you are heading with this idea.

I think it is a fantastic idea also, that if it comes down to it and shit is hitting the fan, you finally cast your Eye of the Storm spell to wreck the last oncoming wave of raiders that would decimate your remaining pawns that are barely hanging on. But this should be a big bargain, because afterwards your mage will be spent for a few days to maybe a week. For me, I think it would be awesome to have day long malices for using these big game breaker spells. It will make you really consider having to use it. Will we be okay next week with my master mage out of action if a raid comes? Do we go ahead and start regrowing these limbs now or wait until next spring? That would be awesome!

HerrColonel

Quote from: Harry_Dicks on January 28, 2018, 03:05:10 PM
Torann I think the idea of "exhausting" the mage after their spells is fantastic.

I don't like it because I like to use my paladin as a melee monster with a greatsword. He can use his spells to heals his teammates or jump further into the melee. And the shield goes great along with that. Why should he suffer a consciousness debuff =(

Harry_Dicks

Quote from: HerrColonel on January 28, 2018, 03:38:09 PM
I don't like it because I like to use my paladin as a melee monster with a greatsword. He can use his spells to heals his teammates or jump further into the melee. And the shield goes great along with that. Why should he suffer a consciousness debuff =(

Well I am all for more options to the player. Right now in the mod options you can adjust mana regen rate, and other things. But the idea is that smaller spells would not do this, only the big master, blow all your mana and juice at once, spells. So it should not affect the Paladin in any real, significant way.

I suppose the idea could be implemented into different tiers, maybe certain tiers for physical fighters and certain tiers for magic. I also think it would be cool if you had a weighted slider to adjust the amount of physical vs magic users occurring in the world. I love having the magic in my game and "personal lore" but maybe I want these mages to be even rarer. So that in my roleplaying fantasy, they are hunted down by these mage hunters, who are sending raids to try and purge any magic users. Anyone remember from Dragonfall: Origins, where they had the group that hunted rogue magic users, something like that. Great idea for raiders with this mod IMO.

Speaking of paladins, you are making me think I need to get some of that Medieval Times armor in my game! Man I wish there were a lot more content for the medieval time period, and not just ALL WEAPONS AND ARMOR PACKS! >:(

Celestial


Game now has this in the debug log. Is probably saved to file since it persists across saves and loads.

Exception ticking Projectile_SummonPylon547558: System.NullReferenceException: Object reference not set to an instance of an object
  at TorannMagic.Projectile_SummonPylon.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0
  at Verse.Projectile.Impact (Verse.Thing hitThing) [0x00000] in <filename unknown>:0
  at AbilityUser.Projectile_AbilityBase.Impact (Verse.Thing hitThing) [0x00000] in <filename unknown>:0
  at TorannMagic.Projectile_SummonPylon.Impact (Verse.Thing hitThing) [0x00000] in <filename unknown>:0
  at AbilityUser.Projectile_AbilityBase.ImpactSomething () [0x00000] in <filename unknown>:0
  at AbilityUser.Projectile_AbilityBase.Tick () [0x00000] in <filename unknown>:0
  at TorannMagic.Projectile_SummonPylon.Tick () [0x00000] in <filename unknown>:0
  at Verse.TickList.Tick () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.Game:<LoadGame>m__3()
Verse.LongEventHandler:ExecuteToExecuteWhenFinished()
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent()
Verse.LongEventHandler:LongEventsUpdate(Boolean&)
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update()