The Forums Are Now Closed!

The content will remain as a historical reference, thank you.

Enhanced AI Mod v0.26.35 Release 2/16/2011

By on November 27, 2010 11:12:28 PM from Demigod Forums Demigod Forums

Peppe

Join Date 03/2006
+49

Enhanced_AI_v0.26.35:

http://peppe-dg-mods.googlecode.com/files/Enhanced_AI_v0.26.35.zip

http://peppe-dg-mods.googlecode.com/files/Enhanced_AI_v0.26.35.exe

 

 

AI will work hard to get map control.

AI will actively work to keep portal counts even or in its favor. 

AI will save for critical upgrades like currency, so it can purchase it at or near warrank 3.

AI generals will consider what healer idols the rest of the team owns when making purchases.

AI generals will send one of their healing idols to an AI teammate on summoning (when 2 are summoned) and on teleport.

Locked Post 398 Replies +3
Search this post
Subscription Options


Reason for Karma (Optional)
Successfully updated karma reason!
November 28, 2010 9:06:28 PM from Demigod Forums Demigod Forums

Doesn't the AI say who bought the upgrade now? Pretty sure it has some identifier attached to it. If it's not their nickname, just change it to that (brain.Nickname).

its the ai's name - which means nothing (eg how is engsy or whatever).  It doesn't truly matter with regards to the AI, but in MP games, I always want to know who bought currency as it means they are generally weaker for a bit.  I think the generally rule should be that any announce from the AI should include its character, though - abbreviated, of course (ub, erb, etc).

The 'saving' happens every time a demigod shops. It isn't a specific thing, really, it just does the one with the most gold currently. So that would be pretty spammy.

That's a good point... I wouldn't mind seeing it turned on for a few of these builds to see if its over the top or not, though. 

Reason for Karma (Optional)
Successfully updated karma reason!
November 28, 2010 9:16:01 PM from Demigod Forums Demigod Forums

well mod - you have graduated to zikurat testing.

AI skirmish (mod version) .26c/uberfix 1.03 (last version published by miriyaka)

Settings:  Zik/High Towers - all other settings on default
AI settings:  normal
4v4

rook (human)/ub/da/sedna v rook/ub/da/sedna

Observed results:

initial purchases good.  Another thought on monk management... is it possible to code the following rule:  if team has ai general, send 1 monk to human ASSASSIN (don't do it if the human is a general... well, maybe do that, but I'm just curious for what rule we can pull off.)

I'll finish this game out in a bit and edit this... have to run out for a min.

fs1 purchased quick. 

other thought - we (i) have been focussed on creating what I consider a competent basic player and little else.  We are getting closer to including advanced logic.  can the ai ping locations on the map?  I'd like to start to develop logic that allows for ganks.  For instance... if 1 ai was standing on a controlled flag to capture it and one of our dgs was already in the area, then I'd like to see a message prompting for a gank along with a ping so its clear where the ai would like me to show up... more importantly, build in the logic so the ai actually tries to port in for that gank opportunity. 

Reason for Karma (Optional)
Successfully updated karma reason!
November 28, 2010 9:47:47 PM from Demigod Forums Demigod Forums

Quoting miriyaka,

 

Edit: I'm kind of confused as to how ShouldSave works right now.  What's the intended path for a 2-demigod team after Currency; highest saves for the next big upgrades (cats or giants) and the other saves for priests+angels combined?  And then a 3+ team has one non-highest saving for just angels?

 

I didn't go through every iteration.  The high gold gets cats or if its alone everything.

If there are only two then the second reserves enough for priests + angels. 

If there are 3 or more they all save whatever angels cost.  Figured they could all save for angels and spend the excess on other upgrades/items.   Probably should extend the logic to have one save 1800 and the other 3600 and the rest nothing, but I was tired and discovered the idol purchasing issue.

Reason for Karma (Optional)
Successfully updated karma reason!
November 28, 2010 10:02:58 PM from Demigod Forums Demigod Forums

we also need to think through what do to about the building firepower upgrade.  It's generally useless because of the existing bug (fixed by uberfix).  BUT - because none of us MP experienced folks have bothered to develop a strategy, I really don't know when would be a good time to get the upgrade - what viable strategy is there in upgrading the towers, etc. 

Reason for Karma (Optional)
Successfully updated karma reason!
November 28, 2010 10:11:02 PM from Demigod Forums Demigod Forums

AI skirmish (mod version) .26c/uberfix 1.03 (last version published by miriyaka)

Settings:  the brothers/High Towers - all other settings on default
AI settings:  normal
4v4

rook (human)/ub/da/sedna v rook/ub/da/sedna

Observed results:

good initial shop.  ai's tend to split up some for flag control.  This is great!

side note - the initial messaging at the start - its a minor complaint and probably doesn't really need addressed, but if its easy, check it out - I'd prefer if the build posting was more clockwork.  Eg, all ai's wait 5 sec to start posting builds.  Then 1 posts a build, 2 sec later another, 2 sec later another.  As it is, 5 sec (or so) pass, then 1 posts build.  2 sec another posts... .5 sec another posts.

will edit this with more results soon.

noticed a little bit of logic breakdown on brothers... as there are only 2 key flags that are contested and one of them is a portal.. the ai tended to focus on the portal flag - even though its not as important on brothers early game.

i noticed there is a HUGE difference in the ai's levels vs me.  I am 15 - the best on my team other than me is 10.  On the other team, the best is 10.  I think the difference is pretty much caused by the whole going nuts for the portal early.

Reason for Karma (Optional)
Successfully updated karma reason!
November 28, 2010 11:39:41 PM from Demigod Forums Demigod Forums

noticed a little bit of logic breakdown on brothers... as there are only 2 key flags that are contested and one of them is a portal.. the ai tended to focus on the portal flag - even though its not as important on brothers early game.

If we wanted to, is it possible to build logic based on a given map?  EG - come up with a core of basic logic (like we have now) and have some overrides in place if the map requires them (like brothers).

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 12:11:40 AM from Demigod Forums Demigod Forums

The map is probably available.  How advanced or different would your strategies be?

Going to tag the nickname with this, so whenever the AI chats it will be [TB]Some name (to allies): Message

Any issues with the acronyms?

Code: c#
  1. local myString = 'unknown'
  2.     if unitid == 'hdemon' then
  3.         myString = 'DA'
  4.     elseif unitid == 'hema01' then
  5.         myString = 'TB'
  6.     elseif unitid == 'hepa01' then
  7.         myString = 'UB'
  8.     elseif unitid == 'hgsa01' then
  9.         myString = 'Reg'
  10.     elseif unitid == 'hoak' then
  11.         myString = 'Oak'
  12.     elseif unitid == 'hoculus' then
  13.         myString = 'OC'
  14.     elseif unitid == 'hqueen' then
  15.         myString = 'Que'
  16.     elseif unitid == 'hrook' then
  17.         myString = 'RooK'
  18.     elseif unitid == 'hsedna' then
  19.         myString = 'Sed'
  20.     elseif unitid == 'hvampire' then
  21.         myString = 'Ere'    
  22.     end
Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 12:59:33 AM from Demigod Forums Demigod Forums

Quoting OMG_pacov,
we also need to think through what do to about the building firepower upgrade.  It's generally useless because of the existing bug (fixed by uberfix).  BUT - because none of us MP experienced folks have bothered to develop a strategy, I really don't know when would be a good time to get the upgrade - what viable strategy is there in upgrading the towers, etc. 

Uberfix does absolutely nothing with building upgrades or their affects.  Beam weapons are totally unaffected by splash damage amount buffs (but are affected by radius), therefore the ToL weapons are relatively untouched by the structure upgrades, gaining only a small amount of radius.

Peppe: Should probably use 'LE' for Erebus and 'QoT' for Queen of Thorns.

 

Quoting OMG_pacov,
If we wanted to, is it possible to build logic based on a given map?  EG - come up with a core of basic logic (like we have now) and have some overrides in place if the map requires them (like brothers).

Possible, but probably annoying, as anything you want different will need some kind of if then block with code for each map exception.  Brothers is probably not the map to focus on, for now.

It would probably be best to get the basic logic squared away, and then build in some kind of system where core actions/sensors query a global table with map-specific exceptions that can be easily tweaked when deciding on priorities or weights.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 2:07:53 AM from Demigod Forums Demigod Forums

 

Is it true to say we can ignore the portal count of all maps with an uneven portal total and just capture flags naturally until war rank 8? 

The AI understands absolutes, so we could probably get some non map specific logic in that works well on maps like brothers that would be better.  I don't recall how many maps have an odd number of portals, so this may be an absolute that only applies to brothers, but if a new map ever came out that had odd portals the AI would handle it if we write it in a general way.

 

 

If i missed something brought up in the thread let me know.  A lot of posts to read/track.

26d:

http://www.filefront.com/17579187/Skirmish_AI_v26d.zip

http://www.filefront.com/17579190/Skirmish_AI_v26d.exe

 

Changes:

Whatever code miriyaka posted is in for priorities.

AI save for x upgrade function flushed out to adjust to 1-3 AI's on a team to save for the troop upgrades

   - If there is one AI it will start saving for the troop upgrades at 6 otherwise troop savings starts at 7.  

   - My test with 3 normal AI had the 3 level 8 upgrades all purchased within 20-30 seconds of the warrank 8 announcement. 

      Currency went 6-10 second after warrank 3 was announced. 

   - Not sure of a good spot to announce who is saving for what as the AI can call the save function several times a second when it builds its item priorities list.   The current high gold AI is the saver for single items (currency 1 and giants) and then broken out to the cats, angels, priest if enough AI's are available.

AI's sound off their builds promptly starting at 11.5 seconds and in 3.5 second increments

All AI chat is tagged with their demigod type  [TB] Nickname

 

Pending Item:

AI Idol Buy/Sell could be unpredictable as there is no comparison to what idols it currently has.

Don't know if i can fix it  --  There is a delay in the AI chat, so if it does two actions with an announcement before the delay is up then the first announcement is overwritten with the new one.

 

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 3:02:44 AM from Demigod Forums Demigod Forums

Any issues with the acronyms?

Queen of Thorns is commonly abbreviated by the community as QoT (though, granted, it's hard to take Que for any other DG). Ere should probably be Erb, but it's of little importance.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 10:40:50 AM from Demigod Forums Demigod Forums

I just tried your AI mod, Old ones worked. This latest release the AI just stand there and do absolutely nothing.

I tried just this mod alone, I also tried enabling "uberfix" with this AI that did the same thing.

 

version .24 works but not version .26

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 10:49:35 AM from Demigod Forums Demigod Forums

delete all older versions ---> redownload ---> reinstall

 

hope that helps exx

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 12:42:05 PM from Demigod Forums Demigod Forums

Make sure you're using Demigod version 1.3, and also that you don't have multiple versions of the Skirmish AI Mod enabled in the mod manager.  I don't think any other released mods should conflict with it, so I'm not sure what else could cause that.

Peppe, do you mean the Sync transit delay?  In other words, if it tries to announce two things within like 2-3 ticks, the first one is overwritten?  That shouldn't be happening, at least according to how the lua handles it - it does a table.insert on Sync.AIChat, which should allow multiple messages to co-exist just fine.

If you haven't already, take a look at ui/game/chat.lua.ReceiveChat, as that's what handles the display of it.  I don't have time right now, but I'll browse through it later as well.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 3:30:51 PM from Demigod Forums Demigod Forums

 

Fixed the whole idol shopping routine for the next version.  Idols are now properly weighted against the current idol owned and the AI will get the proper refund on selling to replace an existing idol.  

In the base AI and skirmish AI versions before .26e generals would buy idols whenever they could afford them and not sell existing idols before purchasing.  The base AI priorities are all based on item cost and weightings, so not sure how often it actually does it.  An example, if monk was the highest priority item left in its shopping list and it had 900 gold and currently owned bishops it would buy the monk, not sell the bishops and they would be overwritten with the monk idol.   This fix should give the generals more cash from refunds and not waste the cash they have buy buying lower level idols when they have a better one.

 

On priest idols. 

Should the AI generals all buy up to high priest and then only one get bishops? 

Or all get bishops and one get high priests?

or literally Limit one of each type per team?

 

Seems like they should all get high priests or bishops and then one general do the opposite of the crowd.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 3:47:37 PM from Demigod Forums Demigod Forums

I'd vote for going best-available unless the majority of generals (including human) on their team already has that specific idol, then going for the next down.  This way a 3-general team might end up with two bishops and a high priest, a 2-general team will do one of each.

I realize this isn't flawlessly optimal for some kind of Sedna / other general mix where they're splitting healers with each other, but that's a pretty specific scenario that might not be easy to make the AI reliably take advantage of anyway.

 

Another mod really needs to alter the healer ROF in some way so that this isn't necessary, because it's a really really stupid game mechanic.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 5:28:21 PM from Demigod Forums Demigod Forums

Yeah, let’s scrap the idea of map specific logic now.  That’s more of something to talk about somewhere down the road if we want to pursue that.  The only sort of logic change that MIGHT be useful (might not) is associated with the behavior I saw on the brothers map.  Pretty much the entire 4 AI team (with the occasional exception of 1 dg from time to time) focused on that portal flag.   So, this left me alone on one side just farming away.  This makes me wonder if the priority for going after portals could be reduced until X warscore or until X amount of time has passed.  I really don’t think its that big of an issue, but it creates an imbalance on one side where I pretty much get to power level while the other ai’s fight over and over for the portal.  

Feature requests
Can the AI ping?  If a portal is threatened (eg where you already speak a message), could the AI send out a ping as well?

Advanced feature requests
Can we help educate the AI on when to back down and when to push?  I think the AI handles this well enough for the most part, but coming up with some more specific rules would be good.  For instance, if 2 dgs are up against 1 dg, it’s generally best for the 1 dg to pull back some (based on the 1 dg’s current hp etc in comparison to who he’s up against, if he has a sigil, etc).  I think if something like this was implemented, it would be good, but I’m worried that things could get extremely boring as the AI backs down from battles a bit too much, etc.  Another example of when to back down - the ai has moved up to an enemy flag and is starting to cap the flag.  This is generally the time I’d attempt a fake port or consider porting in for a possible kill based on my strength in comparison to the other dgs.  Or I might even consider porting in for a quick lock and then running away if the flag is valuable enough to me.  Anyway, what happens in most MP games is that if a dg starts trying to take a flag that has lower hp, I will typically flash a port to try to get the human player to back off of the flag.  This generally results in the player backing up for a moment and not continuing to cap the flag.  I guess the rule would be that if an AI sees a single TP flash on a flag it doesn’t control, it should back up a little bit unless its at full hp.  Again, advanced tactic and not really critical, but that plays into the next topic – ganks.

Can we teach the AI to gank and/or request assistance from human players?  The best opportunities for ganks are when an enemy ai is pursing a dg for a kill near or past a tower of if an enemy is on or walks past a flag controlled by the other team.  For instance, if an enemy dg is standing on a flag that I control and one of my ai’s  or I are walking towards that flag and very close to the enemy dg, this is a great time for the AI to flash a port and continue the port if the enemy stays.  This gives us a quick 2v1 advantage and can often result in a kill.  I’d want the ai to ping a location if this was a viable option.  

In addition, it might be good if an AI can send a request for help to its teammates.  If a dg is being pursued near one of its towers and drops down a decent amount of health, then having someone port in to save would be very useful (there would need to be rules on who would port in).  

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 7:48:36 PM from Demigod Forums Demigod Forums

Not sure on the advanced tactics.  Don't know if the TP vortexes are a category of object the AI can scan for.

 

Tried to find an add ping on the sim side, but the functions didn't make much sense to me.  Not sure what parameters the function is looking for.  The sim side can generate pings as you get one whenever a flag is captured or a building is attacked by a enemy hero.  These seem to be done in sensors, but i couldn't follow it all the way back to the UI.

 

There is a portal to threatened tower action in at the moment.  The portal threatened action is similiar but includes a chat message.  The tower one results in ganks occasionally.  If its weight was bumped way up and its goal sets aligned with more goals it could be selected more often/consistently.   Maybe the distance tuned to minimize false alarms that waste tp scrolls.  

Right now it just looks for an enemy demigod to pass near a tower. I think the distance is about the distance of the ranged demigod.

The AI may not carry TPs early or often enough for this action to be seen until later in the game.

I can add flags as targets to that action or any teleport targets.

We might split it off into a second action that focuses on flags with a hurt enemy condition.  If you would gank flags differently than towers.

I can add a health check of the demigod that entered the area and only TP for a hurt enemy.

Can also add conditions to scan for allies.  Maybe multiple the weight by the number of allies.

 

On micro there are some flee actions if i recall that take into account being outnumbered.  We can abort attack actions quickly if outnumbered and up flee actions and we might get a more skittish AI.   We could also just up the threshold to run away in general.  I believe it doesn't consider any flee actions at 70% health and above.

 

 

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 8:57:01 PM from Demigod Forums Demigod Forums

If you can implement flag gank teleports (is there actually a 'ping' or other sim-side event for an enemy demigod stepping on a flag?), definitely weight them by enemy vs friendly numbers; only teleport into an even fight, unless of course it's a portal flag (they seem to handle portal flags just fine right now).  In the case of no friendlies, only teleport if there's one enemy demigod visible, and it's injured or notably lower level (like 20-30% lower).

Actually, with respect to portal flags, we really need to have them treat pre-owned portals differently than center-map portals.  I haven't looked at this chunk of the code for this purpose; does it already do this?

As for making the AI more skittish, be careful when doing this against single enemy demigods.  Like I said in one of the previous threads, it already runs away too soon in some 1v1 fights.  Not all by any means, but especially when I'm playing DA, I personally want nothing more than for an even or higher level AI to run from me so I can safely cut them down from behind.  Speaking from a perspective outside of the games where this happens, I actually don't want that to happen, because it makes them too easy.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 10:02:10 PM from Demigod Forums Demigod Forums

no testing time tonight.  should have some tomorrow.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 10:17:27 PM from Demigod Forums Demigod Forums

Definitely an improvement, I think you could argue that the AI just plays like a noob now rather then a full on mentally handicapped person and I wouldn't disagree with you.  I've only played one game on normal though. maybe the hard AI will be a little more challenging.  Anyway, nice work!

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 10:32:19 PM from Demigod Forums Demigod Forums

Quoting miriyaka,
Actually, with respect to portal flags, we really need to have them treat pre-owned portals differently than center-map portals.  I haven't looked at this chunk of the code for this purpose; does it already do this?

Actually, one caveat with this, that the more experienced players can probably weigh in on - and that is that once one team or the other has giants, the center-map portals are pretty important too.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 10:58:27 PM from Demigod Forums Demigod Forums

Thanks, Fixed. Repatched the game. so far so good. only played 2 games so not enough testing here.

I thank you though Ive been using your ai for a few now.

Reason for Karma (Optional)
Successfully updated karma reason!
November 29, 2010 11:35:48 PM from Demigod Forums Demigod Forums

 

26e:

http://www.filefront.com/17583522/Skirmish_AI_v26e.exe

http://www.filefront.com/17583525/Skirmish_AI_v26e.zip

 

New version should slow down now.  Hit a lot of the major items on my list.  Rest is fixing or writing the individual actions, which takes a while.

 

Idol purchases fixed.  AI now respects their priority and when it buys a new idol the original is properly sold for a refund.

AI generals should buy bishops save one general who buys high priests.  If only one general is on the team it will upgrade all the way to bishops.

Re-wrote the teleport to tower action.  I didn't put many conditions on it, so it may fire too often.  AI's will teleport to flags, towers, portals that have an enemy near it. 

Updated the teleport to threatened portal to only be active warrank 7 or higher.  The action above will defend the flags somewhat.  At warrank 7 the portal action (the one with the announcement) will be active and has about double the scan radius.  So the AI will tp earlier to protect portals late game.

 

I may start playing against this version  

 

Reason for Karma (Optional)
Successfully updated karma reason!
November 30, 2010 5:43:38 AM from Demigod Forums Demigod Forums

Played a game vs 26e with newest Uberfix enabled, standard Pacov settings.

Cataract

TB (Human)/Sedna/QoT vs TB (AI)/Sedna/QoT

I lost that one  Of course, the point wasn't to win, and I was just goofing around, but it clearly shows the AI is capable of doing certain things alone. Cit upgrades mostly all right and timely, though Cur2 wasn't bought at all. My AI was trying to keep up with 3 opponent AIs upgrading their cit like crazy, and quite successfully so. I think the strategical part of holding portals/destroying towers/holding flags is now also implemented quite nicely.

No glaring behavior oddities, though the AI occasionally takes too much risk on high tower settings (on normal towers, should be quite justified, though).

Monk management much improved. I had a monk attached to me a higher percentage of time than I ever got in certain mid games

The tactical part (coordinated ganking) is weak as expected, but I guess there isn't much you can change in this respect.

Overall, quite a seamless experience I actually enjoyed and a definite improvement over all previous versions. Impressive. Keep up the good work!

 

Reason for Karma (Optional)
Successfully updated karma reason!
November 30, 2010 12:46:00 PM from Demigod Forums Demigod Forums

Played 3 games (skirmish AI 26e with newest Uberfix enabled). Everything on normal settings. Normal AI. (my reg doesn't use anything: skills, items, upgrades, except in 1v1 I use upgrades)

Cataract

|Regulus (human)/QoT/Qot vs Regulus/Qot/Qot | reg (human) v qot | reg (human) v qot|

So, as I haven't tested any other Ai mods except the old one, I see a great improvement (without anything I lost 3v3 , but won two others with just citadel upgrades)

 

In 3v3 it did upgrades well, managed monks good also. Now the things, which I saw ai doesn't do well

First of all it goes too far into towers. However in normal towers usually manages to get out except cloak of night queen. She pursues me (both full hp), then warps after me into towers, then spikes and either tries to retreat and dies or attacks and dies. With blood queen she retreats soon enough.

When demigod is damaged and runs away, if healing potion is on the way, he won't take it (would have saved his life as it was 3000 potion and demigod was nearly in his towers).

 

Now more about queen herself. I played two games 1 (me reg) v 1 (queen) before just for a small test. One time QoT used cloak, another - blood. First time was incredibly easy because queen had not much hp and didn't use shield. After that I watched the replay, and saw that it actually had shield skill, but for some reason didn't want to use it. Second game it was more difficult to kill her, but same thing with shield. Both games queens maxed shield, but didn't use it a SINGLE TIME

 

In a game of 3v3, In whole match of 4 Queens, I saw shield being used ~2-3 times. Not so much as for shield/spikes build I think... The reason to that might be another problem. Why does every QoT walks around the map in open form? I think her closed form is stronger form for wandering around the map, killing troops, etc, because of the regeneration and small attack aoe... Maybe QoT somehow could go to open form only against demigod/lots of (strong) troops/towers?

Then again. I saw only one QoT build (maybe accident?) with only difference of favor items (that means shield/spikes build with cloak or blood). Thus making it a bit bad as queen doesn't use shield skill often... Did a specific test for QoTs. 5 (reg + 4 qots) v 5 qots. All Qots were walking in open form most of the game, used shield... few times... No shamblers for any Qot (reached levels 10-11 at the end of game), lots of ground spikes/waves.

 

Now old problem of regulus. He doesn't snipe when needed... I several times on purpose went in his snipe range with low hp and he didn't shoot me for a kill. Another time, I was low on hp and he used thunder on me (had about 650 hp before thunder), so he could have killed me with snipe after it, however he didn't. Maybe regulus somehow could track more demigods around the map as his skill range far surpasses the range he cares about (low hp demigod can go not far away from him, and won't be killed). But I saw towers being sniped at... very short range... which is pointless (he reached with normal attacks from same range).

 

And one more thing. Can AI take commands from players? Let's say to instantly teleport to me or something? (might help in portal capturing, protecting, etc)

to both of you.

 

 

Reason for Karma (Optional)
Successfully updated karma reason!
Stardock Forums v1.0.0.0    #108433  walnut3   Server Load Time: 00:00:00.0000313   Page Render Time: